我有一个程序,其中用户输入的线程数量添加和删除到双向链接列表。但是,如果线程在添加或删除元素时被抢占,并且下一个线程遇到损坏的链表,则整个程序应该退出。
当其中一个线程调用exit时,有没有办法退出整个程序?
这是线程执行的功能,当链表损坏时我设置了退出调用
Corrupted list
Corrupted list
Could not find element M in the list
}
这就是我得到的结果
{{1}}
答案 0 :(得分:1)
exit()
函数 终止所有线程。
线程可以同时运行并且可以在任何时候被抢占(例如,在调用exit()
之前),这解释了您看到的输出。许多线程很可能在同一时间内发现列表已损坏,然后序列化内部锁,以同步对stdout
的访问。