4 python下多執行緒的限制以及多行程中傳遞引數的方式
python多執行緒有個全域解釋器鎖(global interpreter lock),這個鎖的意思是任一時間只能有一個執行緒使用解釋器,跟單cpu跑多個程式一個意思,大家都是輪著用的,這叫“并發”,不是“并行”,
多行程間共享資料,可以使用 multiprocessing.Value 和 multiprocessing.Array
5 python多執行緒與多行程的區別:
在UNIX平臺上,當某個行程終結之后,該行程需要被其父行程呼叫wait,否則行程成為僵尸行程(Zombie),所以,有必要對每個Process物件呼叫join()方法 (實際上等同于wait),對于多執行緒來說,由于只有一個行程,所以不存在此必要性,
多行程應該避免共享資源,在多執行緒中,我們可以比較容易地共享資源,比如使用全域變數或者傳遞引數,在多行程情況下,由于每個行程有自己獨立的記憶體空間,以上方法并不合適,此時我們可以通過共享記憶體和Manager的方法來共享資源,但這樣做提高了程式的復雜度,并因為同步的需要而降低了程式的效率,
6 請寫出一段Python代碼實作洗掉一個list里面的重復元素
>>> l = [1,1,2,3,4,5,4]
>>> list(set(l))
[1, 2, 3, 4, 5]
或者
d = {}
for x in mylist:
d[x] = 1
mylist = list(d.keys())
利用map()函式,把用戶輸入的不規范的英文名字,變為首字母大寫,其他小寫的規范名字,輸入:['adam', 'LISA', 'barT'],輸出:['Adam', 'Lisa', 'Bart']:
def normalize(name):
return name[0].upper()+name[1:].lower()
def normalizeList(inputlist):
return list(map(normalize, inputlist))
本文首發于Python黑洞網,博客園同步跟新
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/185747.html
標籤:Python
上一篇:關于淺copy和深copy的理解
下一篇:爬取漫畫網站并進行圖片拼接
