要在Linux中创建一个对等线程,工作线程完成后传递给主线程,可以使用全局变量
时间: 2023-03-20 09:02:45 浏览: 112
采用全局变量方式实现多线程的通信
5星 · 资源好评率100%
您好,我是C知道,我可以回答您的问题。
要在Linux中创建一个对等线程,工作线程完成后传递给主线程,可以使用全局变量。可以按照以下步骤进行:
1.定义全局变量,作为线程之间共享数据的容器。
2.创建一个对等线程,并将全局变量传递给线程作为参数。
3.在线程中执行工作任务,并将结果存储在全局变量中。
4.当线程完成任务后,将结果从全局变量中传递回主线程。
5.主线程等待工作线程完成任务,并检查全局变量中的结果。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
/* 全局变量 */
int global_variable = 0;
/* 线程函数 */
void* thread_function(void* arg) {
int local_variable = *(int*)arg;
global_variable = local_variable + 1;
pthread_exit(NULL);
}
int main() {
pthread_t thread;
int local_variable = 10;
/* 创建线程 */
pthread_create(&thread, NULL, thread_function, &local_variable);
/* 等待线程完成 */
pthread_join(thread, NULL);
/* 检查全局变量中的结果 */
printf("global_variable = %d\n", global_variable);
return 0;
}
```
这个程序创建一个对等线程,在线程函数中将传递的参数加1,并将结果存储在全局变量中。主线程等待工作线程完成任务,并打印全局变量中的结果。
阅读全文