聊一聊go的協程

2021-10-06 06:37:47 字數 824 閱讀 3595

最近在學習go語言,學習到了協程,來記錄下學習的心路歷程

先來看下例子:列印5個hello和5個world

package main

func say(s string)

}func main()

go 啟動協程的方式就是使用關鍵字 go,後面一般接乙個函式或者匿名函式

執行上述**發現什麼也沒有輸出 ,為什麼?

因為當使用go啟動協程之後,這2個函式就被切換到協程裡面執行了,但是這時候主線程main結束了,這2個協程還沒來得及執行就掛了!

那給主線程加個睡眠時間1s試試

func main()
會發現可以列印出5個hello 和 5個world,多次執行你會發現hello 和 world 的順序不是固定的,這進一步說明了乙個問題,那就是多個協程是同時執行的!

那在試試go 自帶乙個waitgroup

package main

import (

"fmt"

"sync"

)//var 是宣告了乙個全域性變數 wg

var wg sync.waitgroup

func say(s string)

相當於 wg.add(-1) 意思就是我這個協程執行完了

執行結果是想實現的效果!

謝謝,all!

聊一聊 Flask 的 jsonify

首先我們來看一段 python from flask import flask,jsonify tasks api v1.0 tasks methods get defget tasks return jsonify if name main true 在這段 裡面,我們看到了今天的主角jsonif...

聊一聊我的二 二

我是乙個二 二一年六月畢業的學軟體技術的大專生 也就是明年畢業 對於任何人來說,這一年裡是充滿挑戰的。可能乙個小小的想法,就會決定未來的走向。二 二 是對於所有人都是複雜的一年,特別是對於我.二 二 一年裡充滿了對於我是充滿悲傷的,疫情爆發,長輩離世,面臨就業問題等等,各種我不敢面對的事情。都出現在...

聊一聊PHP的global

眾所周知,在php的函式中,如果想使用全域性變數,一種是使用超全域性變數 globals,另一種是在函式中使用global關鍵字宣告,使用超全域性變數 globals的方式大家都知道了,今天來好好聊一聊使用global方式來宣告變數。我們來看如下例子 a 1 b 2 function test te...