有乙個南北向的橋,只能容納乙個人,現橋的兩邊分別有10人和12人,編制乙個多線程式讓這些人到達對岸,每個人用乙個執行緒表示,橋為共享資源。在過橋的過程中顯示誰在過橋及其走向。
package org;
public class through_out_bridge
//例項化右端12個人,此時所有人都不能過橋,橋的可以狀態標誌為不可以用
for( int i=1 ;i<=12;i++)
//橋的可用狀態給左端第10個人,可以自定義給誰
b.state = true;
thread t = new thread(new person(false, 10, b));
}class person implements runnable
if (side) else
}//過橋方法
public synchronized void through() throws interruptedexception else
}public void run() catch (interruptedexception e) }}
class bridge
public synchronized void open(int i) throws interruptedexception
}public synchronized void lock(int i) throws interruptedexception }}
過橋問題動畫顯示(多執行緒,簡陋版)
code include include include void gotoxy int x,int y 四個訊號量,東,西方向訊號量,東,西段互斥訊號量,用訊號量控制過橋的物件,同時過橋的物件僅且 只有兩個,並且不能同向,多個執行緒用同乙個執行緒入口函式 handle he dir 從西往東訊號量...
java多執行緒
在網上看到很有意思的問題,摘下來好好看下 在面試的時候被問了乙個多執行緒的問題 回來仔細思考了一下,多執行緒是否真的能提高了效率?我對多執行緒的理解就是 比如挖乙個隧道,有2種開工方法 1 只在山的一頭挖,直至挖到山的另一頭,從而打通隧道,這可以看成是單執行緒 2 在山的兩頭挖,同時開工,最後在山的...
Java 多執行緒
1。thread類和runnable介面 2。主線程 用thread的static thread currentthread 方法獲得 3。通過實現runnable介面建立執行緒 實現runnable介面的run方法。新執行緒在run 方法返回時結束。注意用這種方法建立程序時,在實現runnable...