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 把這個問題給修正了。

留言

  1. Python3 有修正 ctrl + c 沒有傳遞到每一個threading 的問題了。最近正在慢慢把習慣從 python2 傳移到 python3

    回覆刪除

張貼留言

熱門文章