日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4.1 - 并发编程 - 进程练习题

發(fā)布時間:2025/6/17 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.1 - 并发编程 - 进程练习题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.思考開啟進(jìn)程的方式一和方式二各開啟了幾個進(jìn)程?
開啟進(jìn)程有兩種方式,Process(),自定義類繼承(Process),開啟個數(shù)是一樣的
2.進(jìn)程之間的內(nèi)存空間是共享的還是隔離的?下述代碼的執(zhí)行結(jié)果是什么?
隔離的 1 from multiprocessing import Process 2 n=100 #在windows系統(tǒng)中應(yīng)該把全局變量定義在if __name__ == '__main__'之上就可以了 3 def work(): 4 global n 5 n=0 6 print('子進(jìn)程內(nèi): ',n) 7 8 if __name__ == '__main__': 9 p=Process(target=work) 10 p.start() 11 p.join() 12 print('主進(jìn)程內(nèi): ',n) 13 """ 14 子進(jìn)程內(nèi): 0 15 主進(jìn)程內(nèi): 100 16 """ 3.基于多進(jìn)程實現(xiàn)并發(fā)的套接字通信?
server: 1 # -*- coding:utf-8 -*- 2 import socket 3 from multiprocessing import Process 4 5 def task(conn): 6 while True: 7 try: 8 data = conn.recv(1024) 9 if not data:continue 10 conn.send(data.upper()) 11 except Exception: 12 break 13 conn.close() 14 15 def server(ip,port): 16 server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 17 server.bind((ip,port)) 18 server.listen(5) 19 while True: 20 conn,client_addr=server.accept() 21 p = Process(target=task,args=(conn,)) 22 p.start() 23 server.close() 24 25 if __name__ == "__main__": 26 server('127.0.0.1',8080) client: 1 # -*- coding:utf-8 -*- 2 import socket 3 4 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 5 client.connect(('127.0.0.1',8080)) 6 while True: 7 msg = input('>>>:').strip() 8 if not msg:continue 9 client.send(msg.encode('utf-8')) 10 data = client.recv(1024) 11 print(data.decode('utf-8')) 4.思考每來一個客戶端,服務(wù)端就開啟一個新的進(jìn)程來服務(wù)它,這種實現(xiàn)方式有無問題? 有 不能無限開進(jìn)程 5.改寫下列程序,分別別實現(xiàn)下述打印效果 1 from multiprocessing import Process 2 import time 3 import random 4 5 def task(n): 6 time.sleep(random.randint(1,3)) 7 print('-------->%s' %n) 8 9 if __name__ == '__main__': 10 p1=Process(target=task,args=(1,)) 11 p2=Process(target=task,args=(2,)) 12 p3=Process(target=task,args=(3,)) 13 14 p1.start() 15 # p1.join() 16 p2.start() 17 # p2.join() 18 p3.start() 19 # p3.join() 20 21 p1.join() 22 p2.join() 23 p3.join() 24 25 print('-------->4') 26 27 # 效果一:保證最先輸出 - ------->4 并發(fā) 28 # 29 # -------->4 30 # -------->1 31 # -------->3 32 # -------->2 33 # 效果二:保證最后輸出 - ------->4 并發(fā) 34 # 35 # -------->2 36 # -------->3 37 # -------->1 38 # -------->4 39 # 效果三:保證按順序輸出 串行 40 # 41 # -------->1 42 # -------->2 43 # -------->3 44 # -------->4

?

轉(zhuǎn)載于:https://www.cnblogs.com/alice-bj/p/8694194.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的4.1 - 并发编程 - 进程练习题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。