0

次のコードはFIFO順序の例ですか?

問題は、FIFOキューの実装にあります。

一言で言えば、ランダムな数の車(北または南に行く)が2車線の道路に沿って運転します。彼らは一方向である橋を渡らなければなりません。

橋へのアクセスは到着時間によって異なります。早い者勝ち。

この声明を通して私はそれを言うことができますか

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 に答える