[問題] multithread 與 multiprocess的選擇
有時候再寫多執行緒程式的時候會有些困惑
到底是該選擇thread還是process
先忽略掉每個job間的溝通問題
如果是一台server 有兩顆CPU 每個有12個core (隨便舉例)
用C/C++寫的話應該直覺想到是用multi-thread來寫
才比較榨乾server的資源
不過因為python有 GIL的問題 這一切又開始讓我困惑了...
到底用哪一種方式才可以用到所有的core資源呢= =?
剛剛用了我的桌機測試了一次 (win7-64bits)
用簡單的程式跑了一下3個thread(我的是三核心CPU)
可以看到三個core都有明顯 loading上升的情況(不過還未到100%)
這...又算是 GIL嗎 = =?
我所理解的GIL應該會把三個threads都綁在同一個core上
還是他其實是綁在同一顆CPU上= =?
另外 如果他們不需要共享資源 (例如一個用IO 一個用CPU)
這樣還會lock 使得同一時間只有一個thread運行嗎 ??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.62.26
→
07/15 01:18, , 1F
07/15 01:18, 1F
→
07/15 14:34, , 2F
07/15 14:34, 2F
推
07/17 02:13, , 3F
07/17 02:13, 3F
推
07/19 01:01, , 4F
07/19 01:01, 4F
推
07/19 01:04, , 5F
07/19 01:04, 5F
→
07/19 01:05, , 6F
07/19 01:05, 6F
Python 近期熱門文章
PTT數位生活區 即時熱門文章
-9
18