当一个线程失败时退出所有线程

时间:2018-02-17 22:12:32

标签: c pthreads

我有一个程序,其中用户输入的线程数量添加和删除到双向链接列表。但是,如果线程在添加或删除元素时被抢占,并且下一个线程遇到损坏的链表,则整个程序应该退出。

当其中一个线程调用exit时,有没有办法退出整个程序?

这是线程执行的功能,当链表损坏时我设置了退出调用

Corrupted list
Corrupted list
Could not find element M in the list

}

这就是我得到的结果

{{1}}

1 个答案:

答案 0 :(得分:1)

exit()函数 终止所有线程。

线程可以同时运行并且可以在任何时候被抢占(例如,在调用exit()之前),这解释了您看到的输出。许多线程很可能在同一时间内发现列表已损坏,然后序列化内部锁,以同步对stdout的访问。