go併發之美 多個操作的分發及限流

2021-10-09 22:55:21 字數 573 閱讀 8893

緣分隨風飄盪

緣盡此生也守望

你我在凝望那一刻

心中有淚飄降...

code is graceful , thoughts are precious.

今天又萌生乙個想法,動手來實現下看看!

我們假設視窗分為三類a\b\c:買票視窗、改簽/退票視窗、老弱病殘孕愛心視窗,每種有多個視窗

受大廳大小限制,a、b每個視窗排隊最多5人,c類視窗最多排隊3人,總有很多人在排隊,可以想象下

a類下面共3個視窗,即排隊最多15人

b類下面共3個視窗,即排隊最多15人

c類下面共2個視窗,即排隊最多6人

每個人辦理都有一定耗時

type window struct 

func main() {

// 各類事情總視窗執行佇列,a、b類視窗正在辦理的人最多三個(每個視窗各乙個正在辦理)

cha, chb, chc := make(chan *window, 3), make(chan *window,

Go併發程式設計之美 Load Store操作

一 前言 go語言類似j a juc包也提供了一些列用於多執行緒之間進行同步的措施,比如低階的同步措施有 鎖 cas 原子變數操作類。相比j a來說go提供了獨特的基於通道的同步措施。本節我們先來看看go中load store操作 二 load store操作 go中的load和store提供了原子...

閱讀筆記 Go語言併發之美

文章題目 go語言併發之美 分享筆記 這篇文章說的是go routine和channel在go語言中的應用。剛開始看的時候,對文章使用lua的協程來描述goroutine還真是不習慣。建議讀者不要跟者作者使用這樣的稱呼。併發在go中得到語言級別的支援。文章列出了幾個goroutine和channel...

Go併發程式設計之美之條件變數

一 前言 go語言類似j a juc包也提供了一些列用於多執行緒之間進行同步的措施,比如低階的同步措施有 鎖 cas 原子變數操作類。相比j a來說go提供了獨特的基於通道的同步措施。本節我們先來看看go中與鎖相關的條件變數 二 條件變數 在j a中條件變數是與具體的鎖想關聯的,在go中也是這樣的。...