多线程

线程池

函数指针在线程池中的应用

// 定义任务结构体
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)