POSIX下的多线程(一)
程序员文章站
2022-06-10 20:53:07
...
使用pthread创建简单的多线程
上代码:
#include <stdio.h>
#include <pthread.h>
// 定义线程要执行的函数, arg为线程传递过来的数据,可以用结构体来传递多个数据
void* Thread1(void* arg)
{
printf("第一个子线程, running");
return "执行完毕";
}
// 定义线程要执行的函数,arg为线程传递过来的数据,可以用结构体来传递多个数据
void* Thread2(void* arg)
{
printf("第二个子线程, running");
return "执行完毕";
}
int main()
{
int res = 0;
pthread_t mythread1, mythread2;
void* thread_result = NULL;
// 创建线程,使用pthread_create函数
res = pthread_create(&mythread1, NULL, Thread1, NULL);
if (res != 0)
{
// 线程创建失败
printf("线程创建失败");
return 0;
}
res = pthread_create(&mythread2, NULL, Thread2, NULL);
if (res != 0)
{
// 创建线程失败
printf("创建线程失败");
return 0;
}
// 等待指定线程执行完毕,主线程处于阻塞状态,使用 pthread_join
res = pthread_join(mythread1, &thread_result);
// 打印线程执行结果
printf("%s\n", (char*)thread_result);
// 等待线程执行完毕,主线程处于阻塞状态,使用pthread_join
res = pthread_join(mythread2, &thread_result);
// 打印线程执行结果
printf("%s\n", *thread_result);
// 打印主线程执行结果
printf("主线程执行完毕\n");
return 0;
}
具体的解释都在代码的注释里了。
上一篇: Win32多线程之线程挂起**结束
下一篇: 13招教你做快乐职场女人