Re: py

看板Marginalman作者 (溫水佳樹的兄長大人)時間1年前 (2024/09/27 22:26), 1年前編輯推噓1(100)
留言1則, 1人參與, 1年前最新討論串10/16 (看更多)
※ 引述《cities516 (椒丘單推人)》之銘言: : → cities516: 我記得multi thread跟multi process鎖法剛好相反 09/26 18:14 : → cities516: 一個是一邊跑另一邊鎖 另一個是兩邊一起跑 09/26 18:14 : → sustainer123: py thread有gil鎖 只要用cpython都會這樣 09/26 18:15 : → sustainer123: multi thread實際上只會跑一個 09/26 18:16 : → sustainer123: 我有看到加c的擴充處理這問題 但好麻煩 09/26 18:16 : → sustainer123: 另一種就Coroutine+multi processㄅ 09/26 18:17 : 肥肥也沒很熟 : 單純是以前修Distributed Systems時有碰過 : 但是已經記憶久遠了 技術生疏 搞不好講的內容都是錯的 : py裡的multi thread 就像sus大師說的 : 因為每個線程共用記憶體 所以需要上鎖控制 acquire和release : 遇到網路I/O類型的任務 就會用到 : multi process的話 : 則是 大型任務拆分 : 像是matrix A * matrix B : 實際上可以拆解成好幾個小A和小B互乘之後 再結合起來就好 : 然後我稍微查了一下 : py內建的multiprocessing似乎不會用到map跟reduce : 不過map reduce是甚麼我也忘了 : 就像去超商當條碼師不需要學微積分一樣 先說明multi thread 每個子線程會共享記憶體 所以我們可以上鎖避免一些問題 或者把東西變成區域變數 這邊可利用ThreadLocal ThreadLocal是全域變數 每個thread可以賦值特定屬性並讀寫 這邊每個thread就只會讀到自己賦予的值 寫入也不會影響到其他thread 然後關於mapreduce 我想你想討論的是分散式進程? 就我對mapreduce的理解 map是將大資料拆成小資料 reduce是將小資料合併 中間印象還有Shuffle 不過我沒修過分散式系統 不太確定:))) 如果py要搞跨機器的multiprocessing 我看裡面有個manager的東東 但我要再研究一下 姆咪 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.16.17 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1727447211.A.EE6.html ※ 編輯: sustainer123 (223.137.16.17 臺灣), 09/27/2024 22:30:02

09/28 13:37, 1年前 , 1F
我看完了 大師
09/28 13:37, 1F
文章代碼(AID): #1czi2hxc (Marginalman)
討論串 (同標題文章)
本文引述了以下文章的的內容:
2
6
完整討論串 (本文為第 10 之 16 篇):
1
5
9月前, 03/09
2
3
1年前, 11/16
0
3
1年前, 11/12
2
2
1年前, 10/02
6
13
1
1
1年前, 09/28
1
1
2
6
0
6
1年前, 09/26
1
7
文章代碼(AID): #1czi2hxc (Marginalman)