# 多线程
# 线程池
函数指针在线程池中的应用
// 定义任务结构体 | |
struct Task { | |
void (*function)(void* arg); // 函数指针 | |
void* arg; // 参数 | |
}; | |
// 线程池中的工作线程执行任务 | |
void worker_thread(void* arg) { | |
while (1) { | |
struct Task* task = get_task_from_queue(); | |
task->function(task->arg); // 执行具体任务 | |
} | |
} |
- **灵活性:** 可以动态添加不同类型的任务(如网络请求、文件操作、计算任务)。
- 解耦: 线程池代码无需知道任务具体内容,只需调用
function(arg)
。