【go从入门到精通】精通并发编程-协程goroutine
    		       		warning:
    		            这篇文章距离上次修改已过446天,其中的内容可能已经有所变动。
    		        
        		                
                
package main
 
import (
    "fmt"
    "time"
)
 
// 定义一个简单的函数,用于模拟长时间运行的任务
func longRunningTask(taskName string) {
    fmt.Printf("Task %s is running\n", taskName)
    time.Sleep(2 * time.Second) // 模拟任务执行时间
    fmt.Printf("Task %s is done\n", taskName)
}
 
func main() {
    start := time.Now()
 
    // 启动两个并发的goroutine执行长时间运行的任务
    go longRunningTask("A") // 不等待这个任务完成,直接执行下一行代码
    go longRunningTask("B") // 同上
 
    // 主goroutine等待两个任务完成
    time.Sleep(2 * time.Second) // 假设主goroutine也需要等待一段时间来处理其他任务
 
    end := time.Now()
    elapsed := end.Sub(start)
    fmt.Printf("Total time taken: %.3f seconds\n", elapsed.Seconds())
}这段代码启动了两个goroutine来执行longRunningTask函数,每个任务模拟耗时2秒。主goroutine在启动了两个任务后等待了2秒,然后打印总的运行时间。这展示了Go语言中并发编程的基本用法。
评论已关闭