多线程
线程池
函数指针在线程池中的应用
// 定义任务结构体
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)
。