python

在python中存在着多線程、多進程等

今天寫一點關於Python多線程的東西


咱們在學習Linux中Apache的時候都有接觸過線程、進程這裏就不多解釋了

shell中使用多線程(nohup命令)


首先寫Python多【線 進】程的用途:


Python線程多用與I/O密集,下載,圖像,音頻,保持等情況。

Python進程多用於大量消耗Cpu的場所,數據是分開的,同步簡單;佔用內存多,切換複雜,cpu利用率;創建銷燬、切換複雜、速度慢;進程之間不會互相影響。


進程可以直接查看,線程不可以,因爲線程依附在進程中所以要使用pstree -p 進程號來查看

每個進程自帶一個線程(本身)


線程基本原理:

1) cpu是以時間片的方式爲進程分配cpu處理的時間的,當一個進程以同步的方式去完成幾件的事情時,此進程必須完成了第一件事情之後再做第二件事,在單線程的工作模式下會堵塞,等待cpu處理完成之後在處理其他的事情,因此cpu的使用率會比較低。

2)爲了提高cpu的使用率,採用多線程的方式去同時完成幾件事情而互補干擾,可以在相同時間點去做不同的事情,大大提高了cpu的使用率,可以避免進程堵塞。

3)多線程中線程數不要太多,因爲線程直接切換是需要時間的,在我們編碼中就可以看得出來多線程中處理的線程函數,都是靜態函數,也就是屬於一個類的靜態函數,因此多個線程在做同一件事情的話,優勢不明顯反而會大量消耗cpu。這種模式不可取。


以上來自Python小白的個人看法;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章