在Go语言中,`schedule`函数是用于在goroutine中调度任务执行的函数。它允许你定义一组goroutine,并在指定的时间间隔内按照预定的顺序执行它们。 `schedule`函数的使用方式如下: ```go func schedule(f func(), interval int) <-chan bool ``` 其中,`f`参数是一个函数,表示要执行的任务。`interval`参数是一个整数,表示任务执行的间隔时间(以毫秒为单位)。函数返回一个只接受布尔值类型的通道(`<-chan bool`),用于通知任务的完成情况。 下面是一个使用`schedule`函数的简单示例: ```go package main import ( "fmt" "time" ) func main() { // 定义要执行的任务 task1 := func() { fmt.Println("Task 1 executed") } task2 := func() { fmt.Println("Task 2 executed") } // 使用schedule函数安排任务的执行顺序和间隔时间 done := make(chan bool) go schedule(task1, 2000, done) // 每2秒执行一次task1 go schedule(task2, 5000, done) // 每5秒执行一次task2 // 等待所有任务完成 for i := 0; i < 2; i++ { <-done } fmt.Println("All tasks completed") } // schedule函数用于安排任务的执行和通知完成情况 func schedule(f func(), interval int, done chan<- bool) { for { f() // 执行任务 time.Sleep(time.Duration(interval) * time.Millisecond) // 等待指定间隔时间 done <- true // 通知任务完成 } } ``` 在上面的示例中,我们定义了两个任务(`task1`和`task2`),并使用`schedule`函数安排它们的执行顺序和间隔时间。每个任务都是一个匿名函数,在执行时会打印相应的消息。`schedule`函数会在指定的间隔时间内循环执行任务,并通过通道`done`通知任务的完成情况。主函数通过从通道中接收完成通知来等待所有任务完成,然后打印"All tasks completed"消息。 [2023-11-09 18:13:50 | AI写代码神器 | 491点数解答]