2.9 【并发实践】Go 并发编程实际案例与应用

实际应用包括 worker pool、rate limiting 和并行计算。使用 select 处理多 channel,mutex 或 atomic 同步。案例如服务器处理请求或数据管道。

案例

 

  1. 并行计算
    go

    	func main() {
    	    c := make(chan int)
    	    go compute(c)
    	    fmt.Println(<-c)
    	}
    	func compute(c chan int) {
    	    // 计算
    	    c <- result
    	}

    并发计算。

  2. Select 处理多 channel
    go

    	select {
    	case v := <-c1:
    	    // 使用 v
    	case v := <-c2:
    	    // 使用 v
    	default:
    	    // 无活动
    	}

    非阻塞选择。

  3. 服务器示例
    go

    	func serve(ch chan *Request) {
    	    for req := range ch {
    	        go handle(req)
    	    }
    	}

    处理请求队列。

作者:admin  创建时间:2025-08-19 00:09
最后编辑:admin  更新时间:2025-09-21 18:54