我通过LNK2019
创建两个不同的VS 2017
并通过调用pthread
等待退出。
当我运行程序时,最后一个输出是"等待thread1完成...",所以它在尝试加入第一个线程然后终止时实际停止。
当我只使用pthread_create()
创建并运行一个线程并等待其执行完成时,一切正常,输出正如预期。
我在这里缺少什么?我已经在网上搜索并发现pthread_join()
在创建多个线程时没有像往常那样表现。但是我如何实际使用它以等待完成两个pthread_join()
的执行?
这是我的代码:
pthread_join()
答案 0 :(得分:4)
您将错误的参数传递给pthread_create()函数。
rT2 = pthread_create(&thread2, NULL, assembleDeLorean, &iC_2);
rT1 = pthread_create(&thread1, NULL, assembleDeLorean, &iC_1);
应该是
rT2 = pthread_create(&thread2, NULL, assembleDeLorean, iC_2);
rT1 = pthread_create(&thread1, NULL, assembleDeLorean, iC_1);