本文共 665 字,大约阅读时间需要 2 分钟。
Golang并发编程示例
以下是Golang中使用Goroutine和Channel实现的并发编程示例,展示了如何通过轻量级goroutines和channels实现并发任务。
代码如下:
package mainimport ( "fmt" "time")func main() { ch := make(chan struct{}) nums := make([]int, 10) go func() { time.Sleep(time.Second * 5) for i := 0; i < len(nums); i++ { nums[i] = i } ch <- struct{}{} }() <-ch fmt.Println(nums)}/*输出结果:0 1 2 3 4 5 6 7 8 9)*/以上代码通过在main函数中定义一个channelch,并在goroutine中启动一个延迟5秒的任务。在该任务中,创建了一个长度为10的整数数组nums,并在延迟结束后将数组中的值初始化为0到9。随后,通过发送struct{}到channelch唤醒主goroutine,打印nums数组的内容。
Golang的Channel机制允许goroutines之间进行通信和同步,非常适合实现并发编程。通过这种方式,可以在等待某个goroutine完成任务的同时,执行其他任务,从而提高程序的效率。
转载地址:http://leaa.baihongyu.com/