博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程同步(循环50 基础加深版)
阅读量:6495 次
发布时间:2019-06-24

本文共 1722 字,大约阅读时间需要 5 分钟。

要求:子线程循环10次后主线程循环100次之后子线程循环10次.....如此往复50次

  子线程的每次执行10次不许被打断以及主线程的每次100次不许被打断 所以这两个操作可以加上同步所

  

1 package com.thread; 2  3 public class ThreadTest2 { 4     public static void main(String[] args) { 5         final Output output = new Output(); 6         new Thread(new Runnable() { 7              8             @Override 9             public void run() {10                 for(int i=1;i<=50;i++){11                     output.printSub(i);12                 }13             }14         }).start();15         new Thread(new Runnable() {16             @Override17             public void run() {18                 for(int i=1;i<=50;i++){19                     output.printMain(i);20                 }21             }22         }).start();23     }24 }25 class Output{26     private boolean isSub = true;27     public synchronized void printSub(int j){28         while(!isSub){29             try {30                 this.wait();31             } catch (InterruptedException e) {32                 // TODO Auto-generated catch block33                 e.printStackTrace();34             }35         }36         for(int i=1;i<=10;i++){37             System.out.println("子线程打印:"+i+"-----"+j);38         }39         isSub = false;40         this.notifyAll();41     }42     public synchronized void printMain(int j){43         while(isSub){44             try {45                 this.wait();46             } catch (InterruptedException e) {47                 e.printStackTrace();48             }49         }50         for(int i=1;i<=100;i++){51             System.out.println("主线程打印:"+i+"*********"+j);52         }53         isSub = true;54         this.notifyAll();55     }56 }

 

转载于:https://www.cnblogs.com/Wen-yu-jing/p/4083857.html

你可能感兴趣的文章
js深入研究之函数内的函数
查看>>
LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
查看>>
python之commands模块
查看>>
android应用开发--------------看RadioGroup源代码,写相似单选选项卡的集成控件(如底部导航,tab等等)...
查看>>
LeetCode - Binary Tree Level Order Traversal
查看>>
FTP协议完全详解
查看>>
【C语言天天练(十五)】字符串输入函数fgets、gets和scanf
查看>>
【环境配置】配置sdk
查看>>
accept()
查看>>
USB 2.0 Hub IP Core
查看>>
USB 2.0 OTG IP Core
查看>>
解读浮动闭合最佳方案:clearfix
查看>>
Charles使用
查看>>
Python GUI编程(Tkinter) windows界面开发
查看>>
P(Y|X) 和 P(X,Y)
查看>>
dynamic关键字的使用
查看>>
iOS 音乐播放器之锁屏效果+歌词解析
查看>>
【转】Google 的眼光
查看>>
android O 蓝牙设备默认名称更改
查看>>
阳台的青椒苗
查看>>