ref
接受幾個設定:
進程是一家almost密不透風的公司,緬甸KK園區
線程里面工作的…人
進程**[園區]**內公共資源對于進程來說,可以共享.
別的園區[進程],一般不能和自己的園區共享人員資源,除非…
好的,現在再接受設定:
- 單個CPU在任一時刻只能執行單個線程,只有多核CPU還能真正做到多個線程同時運行
- 一個進程包含多個線程,這些線程可以分布在多個CPU上
- 多核CPU同時運行的線程可以屬于單個進程或不同進程
所以,在大多數編程語言中因為切換消耗的資源更少,多線程比多進程效率更高
也就是說,如果我是多核的,一個進程是可以同時允許多個線程一起執行的.
但是python呢?
不行
有個GIL鎖,保證數據安全,它規定了:
在一個進程中每次只能有一個線程在運行
那線程之間如何協同共同的資源?
線程同步
同步表示一種協同辦事
同步的實現方式有很多種:
- 使用鎖的線程同步
- 使用Rlock的線程同步
- 使用信號量的線程同步
- 使用條件的線程同步
(1)
(2)上圖;wait放鎖,notify通知大家競價
5.使用事件的線程同步
6.使用屏障的線程同步
7.使用隊列的線程同步
ref