私の期待する出力は
Count : 1
Count : 2
Count : 3
Count : 4
Count : 5
同期とロックを試しましたが、どちらも機能しません。私はに達する
エンディングメイン
ループを完全に終了するよりも早く。現在の出力は次のとおりです。
Starting Main
Count : 1
Count : 2
Count : 3
Count : 4
Ending Main
Count : 5
カウント:5がメインの終了後にある理由は何ですか?これが私のコードです:
public class Demo {
public static void main( String [] args ) {
System.out.println( "Starting Main" ) ;
for ( int i = 1 ; i <= 5 ; i++ ) {
Thread numberThread = new Thread(new NumberTask(i)) ;
numberThread.start() ;
}
System.out.println( "Ending Main" ) ;
}
}
class NumberTask implements Runnable {
private Lock bankLock = new ReentrantLock();
int count ;
public NumberTask( int count ) {
this.count = count ;
}
synchronized public void run() {
bankLock.lock();
try {
System.out.println( "Count : " + count ) ;
} finally {
bankLock.unlock();
}
}
}