兩個執行緒,乙個列印1-100的奇數,乙個列印1-100的偶數;要求:執行緒1列印5個之後,執行緒2開始列印,執行緒2列印5個之後,執行緒1再開始列印,以此迴圈。
package threadtest;
public class test1 catch(interruptedexception e)
}// 當state=1時, 輪到執行緒1列印5次數字
for(int j=0;j<5;j++)
// 執行緒1列印完成後, 將state賦值為2, 表示接下來將輪到執行緒2列印
state = 2;
// notifyall()方法喚醒在t上wait的執行緒2, 同時執行緒1將退出同步**塊, 釋放t鎖
t.notifyall(); }}
}}).start();
new thread(new runnable()catch(interruptedexception e)
}for(int i=0;i<5;i++)
state=1;
t.notifyall();
}}
}}).start();
}}
兩個執行緒交替列印。例如第乙個執行緒列印1,接著第二個執行緒列印100,接著第乙個執行緒列印2
package threadtest;
public class threadtest1 extends thread
public void run()catch(interruptedexception e)
}} synchronized(ss) }
public void print()else }
public static void main(string args)
}
多執行緒交替執行
場景 由於業務需要多執行緒併發操作,並且多執行緒之間是有一定的依賴關係,比如a執行緒儲存資料,b執行緒則解析資料,即b執行緒是需要在a 執行緒執行完之後才開始執行,同樣a執行緒儲存資料的也需要b執行緒對資料解析完成後才開始儲存新的資料,因此a與b兩個執行緒就形成了交替實現,當然具體情況比這個複雜一些...
多執行緒交替執行
場景 由於業務需要多執行緒併發操作,並且多執行緒之間是有一定的依賴關係,比如a執行緒儲存資料,b執行緒則解析資料,即b執行緒是需要在a 執行緒執行完之後才開始執行,同樣a執行緒儲存資料的也需要b執行緒對資料解析完成後才開始儲存新的資料,因此a與b兩個執行緒就形成了交替實現,當然具體情況比這個複雜一些...
java多執行緒執行問題
class demo extends thread public void run catch interruptedexception e public class test d2.start 如果開啟新執行緒之前,就因為異常而中止了執行緒,那麼新執行緒將無法開啟!class demo exten...