在并发编程中,种族与死锁之间的差异和共同点(如果有的话)是什么?一个详细的答案将不胜感激;)。
答案 0 :(得分:9)
查看Description of race conditions and deadlocks
竞争条件
两个人都会出现竞争状况 线程访问共享变量 同一时间。第一个线程读取 变量和第二个线程 从中读取相同的值 变量。然后第一个线程和 第二个线程执行其操作 在价值上,他们竞相看 哪个线程最后可以写入值 到共享变量。的价值 最后写入其值的线程 保留,因为线程是 写作的价值 以前的帖子写道。
<强>死锁强>
两个线程发生死锁 每个锁定一个不同的变量 同时再尝试锁定 另一个线程已经变量 锁定。结果,每个线程停止 执行并等待另一个 线程释放变量。 因为每个线程都持有 另一个线程想要的变量, 什么都没发生,线程仍然存在 僵持。