スレッドは、働くことです
、それは変更または実行可能スレッドを実装し、スレッドのスレッドでなければなりません
マルチスレッドは競争関係、同じリソースの競合ので、複数のスレッド、つまり、同じオブジェクトである
オブジェクトがスレッドでの競争に送信されるように
:つまり
//リソース競争力のあるリソース
リソースリソースリソース=新新();
スレッド1スレッド1 =新しい新しいスレッド1(資源);
スレッド2スレッド2 =新しい新しいスレッド2(リソース);
thread1.start();
thread2.start();
-------------------------------------------------- --------------------
クラススレッド1を実装したRunnable {
リソースリソース= NULL;
スレッド1(リソースリソース){
this.resourcesの=リソース;
}
公共ボイドRUN(){
/ /リソース内のリソースの競合の方法ときmethodA方法
resources.methodA();
}
}
クラススレッド2実装のRunnable {
リソース資源= NULL;
スレッド2(リソース資源){
this.resourcesの=リソース;
}
公共ボイドRUN(){
//このメソッド内のリソースのためのリソースの競合methodA方法
resources.methodA();
}
}
クラスリソース{
int型のCOUNT = 100プライベート;
//は仕事に行き、マルチスレッド、そして、彼らは方法を実行するために内部リソースの競合を競うので、この方法は、ロック域が必要です
)ます。public void同期methodAを({
IF(COUNT> 0){
COUNT - ;
}
}
}
例:
パッケージ化スレッドを、 パブリック クラスマルチスレッド{ 公共の 静的な 無効メイン(文字列[] args)を{ // リソースの競合リソースがオブジェクトである リソースリソースは= 新しい新しいリソース(); Runnable1 runnable1 = 新新Runnable1(参考); のため(int型 I = 0; I <100; iが++ ){ // ここでのタスクを実行するために複数のスレッドを作成することです // マルチスレッドは競争関係、同じリソースの競合ので、複数のスレッドで、それは、同じオブジェクトである // スレッドに競合他社ので、 新しい新しいスレッド(runnable1、 "スレッド" + I).start(); } } } クラスのリソース{ プライベート int型の COUNT = 100 ; // 仕事に行く、マルチスレッド、そして、彼らは方法を実行するために内部リソースの競合を競うので、この方法は、ロック領域が必要です 公共 同期 のボイド)methodAを({ IF(COUNT> 0 ){ COUNT - ; } のSystem.out.println(にThread.currentThread()のgetName() + "" + "COUNT" + COUNT); } } クラス Runnable1が実装Runnableを{ リソースリソース = NULL ; Runnable1(リソースリソース){ これは、 = .resourcesファイル資源; } 公共 ボイドRUN(){ // このメソッドリソースmethodAメソッドの内部リソースの競合 resources.methodA(); } }
.....