国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Golang與python線程詳解及簡單實例

2020-02-23 04:36:39
字體:
供稿:網(wǎng)友

Golang與python線程詳解及簡單實例

在GO中,開啟15個線程,每個線程把全局變量遍歷增加100000次,因此預(yù)測結(jié)果是 15*100000=1500000.

var sum intvar cccc intvar m *sync.Mutexfunc Count1(i int, ch chan int) {  for j := 0; j < 100000; j++ {   cccc = cccc + 1  }  ch <- cccc}func main() {  m = new(sync.Mutex)  ch := make(chan int, 15)  for i := 0; i < 15; i++ {   go Count1(i, ch)  }  for i := 0; i < 15; i++ {   select {   case msg := <-ch:     fmt.Println(msg)   }  }}

但是最終的結(jié)果,406527

說明需要加鎖。

func Count1(i int, ch chan int) {  m.Lock()  for j := 0; j < 100000; j++ {   cccc = cccc + 1  }  ch <- cccc  m.Unlock()}

最終輸出:1500000

python中:同樣方式實現(xiàn),也不行。

count = 0def sumCount(temp):  global count  for i in range(temp):    count = count + 1li = []for i in range(15):  th = threading.Thread(target=sumCount, args=(1000000,))  th.start()  li.append(th)for i in li:  i.join()print(count)

輸出結(jié)果:3004737

說明也需要加鎖:

mutex = threading.Lock()count = 0def sumCount(temp):  global count  mutex.acquire()  for i in range(temp):    count = count + 1  mutex.release()li = []for i in range(15):  th = threading.Thread(target=sumCount, args=(1000000,))  th.start()  li.append(th)for i in li:  i.join()print(count)

輸出1500000

OK,加鎖的小列子。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘谷县| 武乡县| 深泽县| 阜宁县| 凤凰县| 绵竹市| 祥云县| 新巴尔虎右旗| 靖西县| 贵德县| 香港 | 鞍山市| 望奎县| 崇阳县| 颍上县| 开封县| 银川市| 资阳市| 图木舒克市| 华阴市| 揭东县| 西丰县| 贵州省| 翁牛特旗| 平果县| 开远市| 梁平县| 邢台市| 大庆市| 霞浦县| 苗栗县| 丹棱县| 揭西县| 年辖:市辖区| 湖州市| 北宁市| 柘城县| 仁布县| 高青县| 宁乡县| 潼南县|