【发布时间】:2012-10-03 14:49:08
【问题描述】:
我是多线程新手,正在关注“unix 环境中的高级编程”。我无法获得线程执行的顺序。我有以下代码。
int err1 = pthread_create(&first, NULL, disp, a);
int err2 = pthread_create(&second, NULL, disp, b);
int err3 = pthread_create(&third, NULL, disp, c);
但是与第三个 tid 相关的线程是先执行的,然后是第二个,最后是第一个。不确定这是行为还是出了什么问题。
谢谢! 拉胡尔。
【问题讨论】:
-
线程的主要特点是并行运行,这意味着它们之间没有顺序关系。如果你想在 几个 的地方订购,你通常使用同步来做到这一点。如果您希望进程通常是连续的(例如,
second在first完成之前根本无法运行)只需在同一个线程中运行它们。
标签: c++ multithreading unix