[問題] 關於thread之間的資料交換

看板Python作者 (慢跑中毒)時間13年前 (2012/08/31 00:28), 編輯推噓1(108)
留言9則, 6人參與, 最新討論串1/1
我在主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)


08/31 00:43, , 2F
我有看過這份文件 但可能我漏看了 沒看到重點 我再REVIEW
08/31 00:43, 2F

08/31 00:43, , 3F
一次 謝謝
08/31 00:43, 3F
※ 編輯: wandog 來自: 122.254.3.144 (08/31 00:44)

08/31 00:51, , 4F
global variable會有race condition的問題
08/31 00:51, 4F

08/31 03:42, , 5F
用queue就能解決了
08/31 03:42, 5F

08/31 23:07, , 6F
借問一下在Python用thread有什麼好處?GIL鎖住啦?!
08/31 23:07, 6F

09/01 19:09, , 7F
例如gui的時候不會freeze住操作畫面
09/01 19:09, 7F

09/01 19:11, , 8F
或SOCKET伺服器處理客戶端的時候不用一直等同一個客戶之類的
09/01 19:11, 8F

09/03 17:43, , 9F
thread在IO bound的程式還是用的, CPU bound請用multiproc
09/03 17:43, 9F
文章代碼(AID): #1GFvItTV (Python)
文章代碼(AID): #1GFvItTV (Python)