【发布时间】:2016-12-03 12:02:00
【问题描述】:
如何回答这个问题?请帮忙。
考虑以下具有 3 个线程的程序。
locks l1, l2, l3;
*线程 1
while(1){
l1.lock();
l2.lock();
printf(“Red”);
l3.unlock();
l1.unlock();}
*线程 2
while(1){
l2.lock();
l3.lock();
printf(“Green”);
l1.unlock();
l2.unlock();}
*线程 3
while(1){
l3.lock();
l1.lock();
printf(“Blue”);
l2.unlock();
l3.unlock();}
a) 上述计划的可能结果是什么。你能解释一下这将如何发生吗? b) 这段代码会导致死锁吗?
【问题讨论】:
-
锁是一个抽象的概念,但是你能指定你的类型的定义:'locks'吗?这可能有用*.com/questions/9382122/…
标签: c++ multithreading parallel-processing locking