国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

小結Python用fork來創建子進程注意事項

2019-11-25 18:21:14
字體:
來源:轉載
供稿:網友

自己隨手寫了Python下 fork 進程的測試代碼(來說明這個問題不一定完全合適):

def fork(a): def now():  import datetime  return datetime.datetime.now().strftime("%S.%f") import os import time print now(), a if os.fork() == 0:  print '子進程[%s]:%s' % (now(), os.getpid())  while 1:   a-=10   print '子進程的a值[%s]:%s' % (now(), a)   if a < 1:    break  print '準備退出子進程'  #os._exit(0) ## 你可以在這里退出子進程 else:  print '父進程[%s]:%s' % (now(), os.getpid())  while 1:   a-=1   print '父進程的a值[%s]:%s' % (now(), a)   if a < 0:    break  time.sleep(1)  print '等待子進程結束...'  try:   result = os.wait()   if result:    print '子進程:', result[0], result[1]   else:    print '沒有數據!'  except:   print '異常哦...'  print '父進程...' print '最后的值:',a #exit(0) ## 你也可以在這里退出,注意,這里是父進程和子進程都共用的地方,在這里退出會導致父進程也一并退出

TIPS:

os.fork() 會有兩次返回值,分別是父進程和子進程的返回值
在父進程中,fork返回的值是子進程的PID;
子進程中,這個返回值為0
子進程會復制父進程的上下文
父子進程并不能確定執行順序
os.fork() 之后,子進程一定要使用 exit() 或者 os._exit() 來退出子進程環境,建議使用 os._exit()
os.fork() 來創建子進程的這個代碼并不是很通適,Linux是沒問題的,在Windows下就是不能用的,而官方文檔也有類似表述:

Note that some platforms including FreeBSD <= 6.3, Cygwin and OS/2 EMX have known issues when using fork() from a threadAvailability: Unix.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黎城县| 白玉县| 邢台县| 宜兰县| 曲松县| 德江县| 磴口县| 平潭县| 高碑店市| 星座| 吐鲁番市| 木里| 黎城县| 泉州市| 突泉县| 马公市| 建水县| 平阴县| 鹿泉市| 水城县| 恩平市| 福州市| 安康市| 昌邑市| 青神县| 当雄县| 遂川县| 江孜县| 托里县| 华容县| 开平市| 丹阳市| 江源县| 常山县| 朝阳县| 鹰潭市| 陇西县| 四子王旗| 微山县| 钟祥市| 达尔|