python 筆記 -- multiprocess 和 Threading 使用
from multiprocessing import Process, Queue
def do_something_func(the_queue):
while(1):
msg = the_queue.get() # 從主程序那邊接收一個訊息
print msg
# 宣告一個Queue,作為主副程序之間的資料交換管道
the_queue = Queue()
# 宣告一個 Process , target 為子程序要跑的function, args為要傳入該function的參數
the_proc = Process(target = do_something_func, args = ((the_queue), ))
# 子程序開始執行
the_proc.start()
# 主程序的while loop
while(1):
msg = "hello world"
the_queue.put(msg) ## 傳送一個訊息到子程序之中
使用 Threading
from threading import Thread
def do_something():
while(True):
print "Hello World"
the_thread = Thread(target=do_something, args = ())
the_thread.start()
## 然後會發現用ctrl+c也無法讓這個program停下來...
## 因為ctrl+c的訊號不會傳遞給其他 threading...
## 不過這個是 python2 的問題了, python3 把這個問題給修正了。
使用 Threading
from threading import Thread
def do_something():
while(True):
print "Hello World"
the_thread = Thread(target=do_something, args = ())
the_thread.start()
## 然後會發現用ctrl+c也無法讓這個program停下來...
## 因為ctrl+c的訊號不會傳遞給其他 threading...
## 不過這個是 python2 的問題了, python3 把這個問題給修正了。
看到最後....不敢執行了XD
回覆刪除Python3 有修正 ctrl + c 沒有傳遞到每一個threading 的問題了。最近正在慢慢把習慣從 python2 傳移到 python3
回覆刪除