c - 如何在c中为pthreads给出执行顺序?
问题描述
共有三个 pthread。
我想添加一个设置线程顺序的线程。
在我的源代码中,我得到随机结果。
前任)
1 2 2 1 1 3 3 3
但我想要,1 1 1 2 2 2 3 3 3
如何使用附加的 pthread 来做到这一点?
感谢阅读。
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *runner1(void *argument) {
for (int i = 0; i < 3; i++) {
printf("1 ");
}
return NULL;
}
void *runner2(void *argument) {
for (int i = 0; i < 3; i++) {
printf("2 ");
}
return NULL;
}
void *runner3(void *argument) {
for (int i = 0; i < 3; i++) {
printf("3 ");
}
return NULL;
}
int main() {
pthread_t t1;
pthread_t t2;
pthread_t t3;
pthread_create(&t1, NULL, runner1, NULL);
pthread_create(&t2, NULL, runner2, NULL);
pthread_create(&t3, NULL, runner3, NULL);
pthread_join(t1, NULL);
pthread_join(t2, NULL);
pthread_join(t3, NULL);
return 0;
}
解决方案
推荐阅读
- python - 使用列表输入文本和按空格分割字符串需要什么操作来获取输出?答案最受赞赏
- django - 显示父数据是否在子表中使用的 ORM 或 RAW SQL
- python - 如何将数据集加载到 Jupyter Notebook
- maven - 使用fabric8 maven插件运行带有外部配置文件的docker镜像
- amazon-web-services - aws appsync 连接不会从所有模型中带回项目
- c++ - 是否可以将函数导入命名空间,但不能导出?
- javascript - Angular:尝试添加验证码。错误=>没有名称的表单控件的值访问器:'captcha'
- machine-learning - 从 pickle 文件重新训练加载的模型
- maven - Teamcity 问题:无法将模块添加到当前项目,因为它不是包装类型“pom”
- python - 从与索引对齐的两个熊猫系列中获取非空字符串值的有效方法