1
7
考虑使用互斥体进行同步的任何正确代码。通过移除锁定,您将向程序引入新的(可能不正确的)行为(执行)。但是,新代码仍将包含所有旧行为,因此始终至少有一次执行将产生正确的结果。因此,你所要求的是不可能的。 |
2
2
制作一个包含fork()的程序。然后,使子进程和父进程都从同一个文件中读取一个数字,并将其递增,然后将其写回该文件。在每一个过程中做100次。 |
3
1
当需要互斥时,您肯定需要互斥(mutex)或类似的机制。 |
4
1
如果互斥锁工作,那么最终结果应该是6,否则将是9。
或者我想是3个
|
5
0
我不这么认为,因为从应用程序的角度来看,当前操作系统中实现的调度器是不确定的。但是,如果启动大量线程并多次测试代码,则冲突的概率应该足够高。 |
6
0
如果需要“确定的情况”,让丈夫先存一笔钱,然后再睡上足够的时间,这样妻子就可以取款了。丈夫的结果将覆盖妻子的结果,账户余额不再是酸性的。 |
7
0
当然,可以根据您的感受调整巨大的值,因为互斥是用来防止并发访问的。因此,要测试它,您需要创建并发,并且机器越快,就应该有越大的值。。。 |
8
0
你可以模拟著名的 "bank transfer" scenario 用于说明数据库事务。我们有A和B两个账户,需要把200美元从A转到B。 类C++伪代码(未测试)
现在生成两个线程并执行
|
da cheng · 在c++11中使用条件变量使程序陷入死锁 6 年前 |
Eunjeong Choi · 为什么此代码返回意外结果?(条件变量) 6 年前 |
Razonixx · 从线程内增加全局计数器变量,而不必等待每个线程 6 年前 |
Administrator · c#-等待完成2个线程中的1个 6 年前 |
Francis Cugler · 删除Windows库依赖项 6 年前 |
AshR · 程序断断续续地使用main报告与线程本身不同的线程id 7 年前 |
user7256215 · 在macOS内核扩展中有效地使用同步 7 年前 |