0

以下代码是 FIFO 排序的示例吗?

问题在于实现一个 FIFO 队列。

简而言之:随机数量的汽车(向北或向南行驶)沿着两条车道行驶。他们必须穿过一座桥,这是一种方式。

桥梁访问取决于到达时间。先到先得。

我可以通过这个声明说

semaphore = new Semaphore(capacita,true); 

汽车按照到达顺序过桥?

在这里我无法弄清楚它是如何工作的,以及它如何与前面的语句相关联

lock = new ReentrantLock(true); 

有人能帮我吗?

谢谢

public Ponte(int capacita){
        nNordTraversing = 0;    
        nSudTraversing = 0;     
        nNordWaiting = 0;   
        nSudWaiting = 0;    

        semaphore = new Semaphore(capacita,true); 


        lock = new ReentrantLock(true);           

        waitingCond = lock.newCondition();
        bridgeCond = lock.newCondition();
    }
4

1 回答 1

1

你的代码很奇怪,我不理解这部分。你可以很容易地在互联网上找到一个正确的算法来解决这个问题。

例如:http ://cboard.cprogramming.com/c-programming/119766-semaphore-algorithm.html 这个问题看起来像你的!祝您搜索顺利!

于 2012-05-31T16:03:12.457 回答