我想了解synchornization和理解有三个条件需要满足的东西才能正常工作3同步要求:为什么这种方法不起作用?
1)互斥 - 没有数据被损坏
2)界等待 - 线程韩元永远不会做任何事情
3)正在取得进展 - 整个系统正在进行工作,例如不只是经过轮到谁是它
我不完全理解为什么代码下面不起作用。根据我的笔记,它互相排斥,但不能满足进展或有限的等待。为什么?每个线程都可以执行某些操作,只要现在线程崩溃,每一个线程都会轮到。 以下是共享变量
int turn; // initially turn = 0
turn == i: Pi can enter its critical section
该代码是
do {
while (turn != i){}//wait
critical section
turn = j;//j signifies process Pj in contrast to Pi
remainder section
} while (true);
它基本上滑动these notes 10。
'j'从哪里来? – Thilo 2014-10-31 04:59:27
@Thilo另一个线程,我将编辑以使其更清晰 – Celeritas 2014-10-31 05:02:05
因此,每个线程都知道它的“下一个线程”? – Thilo 2014-10-31 05:05:59