问题描述
当多个处理器正在工作时,这些进程将同时工作.当多个线程访问某个公共数据区域时,就会发生争用情况,一个线程可能会覆盖另一个值.
When multiple processors are working, the processes are working concurrently. Race condition happens when multiple threads accessing some common data area, one may overwrite the other value.
那么,如果它是一个单处理器和一个单核环境,是否可以防止出现竞争状况?
So, if it is a single processor and single core environment, can it prevent the race condition from happening?
请帮助我澄清这种混乱,谢谢.
Help me clarify this confusion, Thank you.
推荐答案
在单处理器环境中可能会发生争用情况.根据Wiki 种族条件,当output is dependent on the sequence or timing of other uncontrollable events
A race condition could happen in Single processor environment. As per Wiki Race Condition occurs when output is dependent on the sequence or timing of other uncontrollable events
单处理器环境可以支持同一进程的多个线程,而这些进程可能正在等待另一个线程在资源上产生.死锁也可能在单处理器环境中发生.
Single processor environment could support multiple threads of the same process of different process that might be waiting for another thread to yield on a resource. Deadlocks can happen in single processor environments too.
场景:
- T1:想要将员工记录添加到文件"employee.txt"
- T2:想计算法律部门"的平均工资
- T3:想删除一位离职的员工
- T4:想列出每个部门工作的员工人数
如果以上所有线程都在time=0
中等待并提交给单个处理器,它将决定哪个线程排在第一,第二等等.在不同的平台,方案等上,线程的优先级和产生顺序不同.因此,T2和T4可能不会给出一致的结果.
If all the above threads are waiting at time=0
and submitted to single processor, it would decide which thread goes first, second and so on. The order in which the Threads are prioritised and yielded differs on different platform, scenarios etc. Thus T2 and T4 might not give consistent result.
这篇关于单处理器环境可以防止竞争状况吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!