- /**
- * sub運行10次,然後main運行100次,這樣交替循環50次
- * @author Administrator
- *
- */
- public class TraditionalThreadCommunication {
- /**
- * @param args
- */
- public static void main(String[] args) {
- final Business business = new Business();
- new Thread(
- new Runnable() {
- @Override
- public void run() {
- for(int i=1;i<=50;i++){
- business.sub(i);
- }
- }
- }
- ).start();
- new Thread(new Runnable() {
- @Override
- public void run() {
- for(int i=1;i<=50;i++){
- business.main(i);
- }
- }
- }).start();
- }
- }
- class Business {
- private boolean bShouldSub = true;
- public synchronized void sub(int i){
- while(!bShouldSub){
- try {
- this.wait();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- for(int j=1;j<=10;j++){
- System.out.println("sub thread sequence of " + j + ",loop of " + i);
- }
- bShouldSub = false;
- this.notify();
- }
- public synchronized void main(int i){
- while(bShouldSub){
- try {
- this.wait();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- for(int j=1;j<=100;j++){
- System.out.println("main thread sequence of " + j + ",loop of " + i);
- }
- bShouldSub = true;
- this.notify();
- }
- }
一個線程通信問題(sub運行10次,然後main運行100次,這樣交替循環50次)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.