python多線程全局變量和鎖

1.python中數(shù)據(jù)類型,int,float,復(fù)數(shù),字符,元組,做全局變量時需要在函數(shù)里面用global申明變量,才能對變量進(jìn)行操作。

而,對象,列表,詞典,不需要聲明,直接就是全局的。

2.線程鎖mutex=threading.Lock()

創(chuàng)建后就是全局的。線程調(diào)用函數(shù)可以直接在函數(shù)中使用。

mutex.acquire()開啟鎖

mutex=release()關(guān)閉鎖

要注意,死鎖的情況發(fā)生。

注意運行效率的變化:

正常1秒,完成56997921

加鎖之后,1秒只運行了531187,相差10倍多。

3.繼承.threading.Thread的類,無法調(diào)用__init__函數(shù),無法在創(chuàng)建對象時初始化新建的屬性。

4.線程在cpu的執(zhí)行,有隨機(jī)性

5. 新建線程時,需要傳參數(shù)時,args是一個元組,如果只有一個參數(shù),一定后面要加一個,符號。不能只有一個參數(shù)否則線程會報創(chuàng)建參數(shù)錯誤。threading.Thread(target=fuc,args=(arg,))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容