看板 Python 關於我們 聯絡資訊
我在主thread中 呼叫了兩個在另外的py檔案中定義的function 並且生成兩個thread之後 將這兩個py檔案中的函式 丟進去執行 接下來我遇到問題了 稱呼兩個子thread分別為a與b a與b要如何交換資料? 一開始是想到用global variable (網路上很多人不推薦這個方法 why?) 但是 如果function是從外部import進來的 似乎沒那麼簡單 我也弄不出來 最後想到的方式是用對file的io行為 來做資料交換(甚至有前輩要我用資料庫... 感覺殺雞用牛刀) 請問各位 有更好的方式嗎? PS.這兩個THREAD都是無限迴圈 會一直持續交換資料 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.254.3.144 ※ 編輯: wandog 來自: 122.254.3.144 (08/31 00:30)
AstralBrain:http://docs.python.org/library/queue.html 08/31 00:39
wandog:我有看過這份文件 但可能我漏看了 沒看到重點 我再REVIEW 08/31 00:43
wandog:一次 謝謝 08/31 00:43
※ 編輯: wandog 來自: 122.254.3.144 (08/31 00:44)
chchwy:global variable會有race condition的問題 08/31 00:51
gozule:用queue就能解決了 08/31 03:42
huggie:借問一下在Python用thread有什麼好處?GIL鎖住啦?! 08/31 23:07
KSJ:例如gui的時候不會freeze住操作畫面 09/01 19:09
KSJ:或SOCKET伺服器處理客戶端的時候不用一直等同一個客戶之類的 09/01 19:11
gozule:thread在IO bound的程式還是用的, CPU bound請用multiproc 09/03 17:43