Golang 併發程式設計

2022-07-04 14:18:16 字數 711 閱讀 5137

目錄傳送者 -> (通道(有可能有資料阻塞)) -> 接受者

package main

import (

"fmt"

"time"

)func main()

}()time.sleep(2 * time.second)

//主協程取資料

for i := 0; i < 3; i++

fmt.println("主協程結束")

}

傳送者 -> (通道(資料),(資料)(...)) -> 接受者

func main()

}()time.sleep(2 * time.second)

//主協程取資料

for i := 0; i < 3; i++

fmt.println("主協程結束")

}傳送者 -> (通道(資料),(資料)(...)) -> 接受者

func main() {

//建立通道

c := make(chan int, 3)

//1. 將c準換為只寫的通道

var send

//2. 將c轉為唯讀的通道

var recv

//往send裡面寫資料

send < -1

//從recv讀資料

未完待續...

Golang 併發程式設計

目錄傳送者 通道 有可能有資料阻塞 接受者 package main import fmt time func main time.sleep 2 time.second 主協程取資料 for i 0 i 3 i fmt.println 主協程結束 傳送者 通道 資料 資料 接受者 func mai...

golang併發程式設計

在早期,cpu都是以單核的形式順序執行機器指令。c語言 php正是這種順序程式語言的代表,即所有的指令都是以序列的方式執行,在相同的時刻有且僅有乙個cpu在順序執行程式的指令。隨著處理器技術的發展,單核時代以提公升處理器頻率來提高執行效率的方式遇到了瓶頸。單核cpu的發展的停滯,給多核cpu的發展帶...

golang併發程式設計 01

一 併發程式設計模板 func main wg.add 1 go func wg.wait 二 鎖住共享資源 1.原子函式 var counter int64 多個goroutine都會增加其值的變數 如果在goroutine中要對counter執行加法,那麼要用原子操作 atomic.addint...