分享到:文章主題: 關于字典這種情況是線程安全的嗎
xiedianshane第10樓
xiedianshane
身份
用戶
文章
1462
星座
魔羯座
積分
8567
等級
洪澤(7)

發信人: xiedianshane (xiedianshane), 信區: Python
標  題: Re: 關于字典這種情況是線程安全的嗎
發信站: 水木社區 (Fri Jul 12 00:05:17 2019), 轉信
  
嘖嘖。
  
就算是CPython那一套,GIL也只能保證一個opcode循環,對于最簡單用賦值statement寫一個dict里的element至少是四個opcode,何況還不知道人家怎么個讀寫,原子性要求的范圍就敢說GIL干什么,GIL是干這個的么?
  
【 在 lvsoft 的大作中提到: 】
: 嘖嘖啥啊?GIL雖然名聲在外以至于隨便來個阿貓阿狗都想踩兩下,但這個情況恰恰是
: GIL發揮作用的場景呀。
:  
  
--
※ 修改:·xiedianshane 于 Jul 12 00:53:31 2019 修改本文·[FROM: 123.116.245.*]
※ 來源:·水木社區 http://www.spnqy.club·[FROM: 123.116.245.*]

返回頂部
lvsoft第11樓
Lv(The Last Guardian)
身份
核心駐版
文章
52346
星座
天秤座
積分
71496
等級
紫檀(11)

發信人: lvsoft (Lv(The Last Guardian)), 信區: Python
標  題: Re: 關于字典這種情況是線程安全的嗎
發信站: 水木社區 (Fri Jul 12 02:09:25 2019), 轉信
  
人家怎么讀寫你看lz原文呀,寫的清清楚楚有啥不知道的。
  
GIL保護的是dict實現本身,保證你使用dict是線程安全的,但你用dict存取數據的過
程這個事務原子性是要你自己負責的,任何非純函數式的語言都這樣。不過lz這種用法并
不存在臨界區,那可不就是只要dict自己沒問題就沒問題了嘛。
  
退一萬步來說,假設你概念不清弄不懂這些,既然你都在我面前顯擺你懂opcode了,那
你至少知道python的class attribute就是用dict存的吧?應該看得出來lz這用法跟
直接寫class的attr是等價的吧?這如果有問題那訪問class的屬性也只能每行加鎖了。
還繼續嘖嘖嘛?
  
【 在 xiedianshane (xiedianshane) 的大作中提到: 】
: 嘖嘖。
: 就算是CPython那一套,GIL也只能保證一個opcode循環,對于最簡單用賦值
statement寫一個dict里的element至少是四個opcode,何況還不知道人家怎么個讀
寫,原子性要求的范圍就敢說GIL干什么,GIL是干這個的么?
  
--
  
※ 修改:·lvsoft 于 Jul 12 02:10:39 2019 修改本文·[FROM: 117.136.46.*]
※ 來源:·水木社區 http://newsmth.net·[FROM: 117.136.46.*]

返回頂部
xiedianshane第12樓
xiedianshane
身份
用戶
文章
1462
星座
魔羯座
積分
8567
等級
洪澤(7)

發信人: xiedianshane (xiedianshane), 信區: Python
標  題: Re: 關于字典這種情況是線程安全的嗎
發信站: 水木社區 (Fri Jul 12 08:41:44 2019), 轉信
  
你覺得lz問的是python本身是不是線程安全的這種只能從肺里問出來的問題么?
  
你扯GIL,你覺得跟你你聊opcode你覺得是顯擺。那GIL是干什么的不特么你自己問的么,你說GIL是干什么的?
  
你覺得你覺得就是你覺得唄。
  
管天管地的主兒,嘖嘖。
  
  
  
【 在 lvsoft 的大作中提到: 】
: 人家怎么讀寫你看lz原文呀,寫的清清楚楚有啥不知道的。
: GIL保護的是dict實現本身,保證你使用dict是線程安全的,但你用dict存取數據的過
: 程這個事務原子性是要你自己負責的,任何非純函數式的語言都這樣。不過lz這種用法并
: ...................
  
--
※ 修改:·xiedianshane 于 Jul 12 08:45:46 2019 修改本文·[FROM: 45.117.99.*]
※ 來源:·水木社區 http://www.spnqy.club·[FROM: 45.117.99.*]

返回頂部
ilovecpp第13樓
cpp
身份
用戶
文章
23781
積分
66842
等級
椽桷(13)

發信人: ilovecpp (cpp), 信區: Python
標  題: Re: 關于字典這種情況是線程安全的嗎
發信站: 水木社區 (Fri Jul 12 09:51:03 2019), 轉信
  
哪四個opcode?
  
【 在 xiedianshane 的大作中提到: 】
: 嘖嘖。
: 就算是CPython那一套,GIL也只能保證一個opcode循環,對于最簡單用賦值statement寫一個dict里的element至少是四個opcode,何況還不知道人家怎么個讀寫,原子性要求的范圍就敢說GIL干什么,GIL是干這個的么?
:
--
  
※ 來源:·水木社區 http://m.newsmth.net·[FROM: 112.64.119.*]

返回頂部
xiedianshane第14樓
xiedianshane
身份
用戶
文章
1462
星座
魔羯座
積分
8567
等級
洪澤(7)

發信人: xiedianshane (xiedianshane), 信區: Python
標  題: Re: 關于字典這種情況是線程安全的嗎
發信站: 水木社區 (Fri Jul 12 12:48:44 2019), 轉信
  
dis一下不就能看了。
  
【 在 ilovecpp 的大作中提到: 】
: 哪四個opcode?
: :
  
--
  
※ 來源:·水木社區 http://www.spnqy.club·[FROM: 45.117.99.*]

返回頂部
dhcn第15樓
朝暉
身份
核心駐版
文章
25367
積分
64886
等級
斗拱(14)

發信人: dhcn (朝暉), 信區: Python
標  題: Re: 關于字典這種情況是線程安全的嗎
發信站: 水木社區 (Fri Jul 12 18:54:31 2019), 轉信
  
你可能把GIL想成EventLoop那個粒度了
【 在 lvsoft 的大作中提到: 】
: 那GIL是干嘛的?
  
--
※ 修改:·dhcn 于 Jul 12 19:02:21 2019 修改本文·[FROM: 106.11.34.*]
※ 來源:·水木社區 http://www.spnqy.club·[FROM: 106.11.34.*]

返回頂部
here080第16樓
hero080
身份
用戶
文章
6319
星座
獅子座
積分
44563
等級
靈樨(8)

發信人: here080 (hero080), 信區: Python
標  題: Re: 關于字典這種情況是線程安全的嗎
發信站: 水木社區 (Mon Jul 15 01:42:13 2019), 轉信
  
這個不安全的話,python里還有線程安全的東西嗎?
class A(object):
   x = dicta
   y = dictb
   z = dictc
這個安全嗎?
肯定得安全吧?
然而其實就是a.__dict__['x']...
【 在 flysagent (...) 的大作中提到: 】
: 標  題: 關于字典這種情況是線程安全的嗎
: 發信站: 水木社區 (Wed Jul 10 19:18:40 2019), 轉信
:  
: dicta = {}
: dictb = {}
: dictc = {}
:  
: dictIdx = {  
: 'name-a':dicta,
: 'name-b':dictb,
: 'name-c':dictc,
: }
:  
: 有三個線程分別讀寫
: dictIdx['name-a'],  dictIdx['name-b'],  dictIdx['name-c']
:  
: 這種情況下是否線程安全,不加鎖的話。
:  
:  
: 不好意思,原文可能沒表述清楚,我的意思是有三個線程threada,threadb,threadc
:  
: threada:讀寫dictIdx['name-a']
:  
: threadb:讀寫dictIdx['name-b']
:  
: threadc:讀寫dictIdx['name-c']
:  
:  
: 按我的土想法,把題目換成下面的表述的話:
:  
: 三個線程threada,threadb,threadc
: threada:讀寫dicta
: threadb:讀寫dicta
: threadc:讀寫dicta
: 這種情況下三個線程沒有同步性問題。
:  
: 現在,令
: dictIdx = {  
: 'name-a':dicta,
: 'name-b':dictb,
: 'name-c':dictc,
: }
: 然后線程操作時使用的是dictIdx 的key進行操作。
:  
: 這樣只是加了一個索引而已,本質應該是一樣的吧,不過我對語言內部實現不清楚,不
: 敢確定,所以上來咨詢一下。
:  
:  
: ※ 修改:·flysagent 于 Jul 12 16:25:27 2019 修改本文·[FROM: 120.36.251.*]
: ※ 來源:·水木社區 http://newsmth.net·[FROM: 120.36.251.*]
  
  
--
  
※ 來源:·水木社區 newsmth.net·[FROM: 76.126.252.*]

返回頂部
sosei第17樓
fss.sosei
身份
用戶
文章
19566
積分
16875
等級
椽桷(13)

發信人: sosei (fss.sosei), 信區: Python
標  題: Re: 關于字典這種情況是線程安全的嗎
發信站: 水木社區 (Mon Jul 15 16:33:34 2019), 站內
  
線程安全,進程不安全
--
  
※ 來源:·水木社區 http://www.spnqy.club·[FROM: 60.1.0.*]

返回頂部
  • 文章數:18 分頁:
    1. <<
    2. 1
    3. 2
明日之后建房子