Golang中怎么使用协程实现并发任务

463
2024/2/17 9:17:25
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Golang中,可以使用关键字go来创建并发任务,也就是Goroutine。以下是一个简单的示例,演示如何使用协程实现并发任务:

package main

import (
	"fmt"
	"time"
)

func task1() {
	for i := 0; i < 5; i++ {
		time.Sleep(1 * time.Second)
		fmt.Println("Task 1: ", i)
	}
}

func task2() {
	for i := 0; i < 5; i++ {
		time.Sleep(1 * time.Second)
		fmt.Println("Task 2: ", i)
	}
}

func main() {
	go task1()
	go task2()

	// 等待协程执行完成
	time.Sleep(6 * time.Second)
	fmt.Println("All tasks are done.")
}

在这个示例中,我们定义了两个简单的任务task1task2,每个任务都是一个无限循环,每隔1秒打印一次。在main函数中,我们通过go关键字创建了两个协程分别执行这两个任务。最后,我们通过time.Sleep等待所有协程执行完成。

需要注意的是,Golang的go关键字会让任务在一个新的协程中运行,不会阻塞主线程的执行,因此可以实现并发执行任务。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 使用Golang的同步机制提高分布式计算性能