一.实现思路
- 创建一个任务结构体,包含任务的名称和内容。
- 创建一个任务调度器,包含一个任务列表。
- 实现添加任务的方法,将任务添加到任务列表。
- 实现执行任务的方法,使用Go协程并发执行每个任务。
- 实现查看任务列表的方法。
二.代码
package main
import (
"fmt"
"sync"
)
// 任务结构
type Task struct {
Name string
Content string
}
// 任务调度器结构体
type TaskScheduler struct {
Tasks []*Task
}
// 添加任务
func (ts *TaskScheduler) AddTask(task *Task) {
ts.Tasks = append(ts.Tasks, task)
}
// 执行任务
func (ts *TaskScheduler) ExecuteTasks() {
var wg sync.WaitGroup
for _, task := range ts.Tasks {
wg.Add(1)
go func(t *Task) {
defer.Done()
fmt.PrintfExecuting task: %s", t.Name)
// 执行任务的逻辑
fmt.Printf("Task content: %s\n", t.Content)
}(task)
}
wg.Wait()
}
// 查看任务列表
func (ts *TaskScheduler) ViewTasks() {
for task := range ts.Tasks {
fmt.Printf("Task: %s\n", task.Name)
}
}
func main() {
task1 := &Task{Name: "Task 1", Content: "Do something"}
task2 := &Task{Name: "Task 2", Content: "Do something else"}
scheduler := &TaskScheduler{}
scheduler.AddTask(task1 scheduler.AddTask(task2)
scheduler.ExecuteTasks()
fmt.Println("Task List:")
scheduler.ViewTasks()
}
三.记录
保存一个名为 task_scheduler.go 的文件。然后执行以下命令来编译和运行代码:
go run task_scheduler.go
四.总结 今天赵征老师为我们初学者第一次讲解“项目实战”板块,其中包括通过项目需求,需求拆解,逻辑设计,代码实现等课题深入讲解。为后续课程奠基。