社区
Java SE
帖子详情
设置两个线程一个对i加1 另一个对i减2 并保证i在0到20之间 java实现
allenzhangchina
2015-12-12 09:50:06
设置两个线程一个对i加1 另一个对i减2 并保证i在0到20之间 java实现
...全文
340
3
打赏
收藏
设置两个线程一个对i加1 另一个对i减2 并保证i在0到20之间 java实现
设置两个线程一个对i加1 另一个对i减2 并保证i在0到20之间 java实现
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
allenzhangchina
2016-02-28
打赏
举报
回复
你这是神回复啊。 你写一个瞅瞅啊。
alan19931103
2015-12-15
打赏
举报
回复
这不就是生产者消费者,百度一大把
allenzhangchina
2015-12-12
打赏
举报
回复
package thread.t1; /** * 多线程--设计2个线程,其中1个线程每次对i增加1,另外两个线程对i每次减少2 并保证i的值在0 到 20 之间 wait nofiy */ //求代码优化 public class T5 { // 采用 Runnable 接口方式创建的多条线程可以共享实例属性 private int i = 0; // 标识i的值是否超过边界值 private boolean flag = true; // 同步增加方法 private synchronized void inc() throws InterruptedException { if (!flag) { wait(); } else { i++; System.out .println(Thread.currentThread().getName() + "--inc--" + i); if (i >= 20) { // 将表示i已经达到上限 设置表示为false flag = false; // 唤醒其他线程 notifyAll(); } } } // 同步减算方法 private synchronized void dec() throws InterruptedException { if (flag) { wait(); } else { i -= 2; System.out .println(Thread.currentThread().getName() + "--dec--" + i); if (i <= 0) { // 将表示i已经达到下限 设置表示为true flag = true; // 唤醒其他线程 notifyAll(); } } } // 增加线程 注意是内部类,且是非静态的 class Inc implements Runnable { public void run() { try { while(true){ inc(); } } catch (InterruptedException e) { e.printStackTrace(); } } } // 减算线程 注意是内部类,且是非静态的 class Dec extends Thread { public void run() { try { while(true){ dec(); } } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) { // 由于内部类是非静态的,所以这样需要Test的实例化才能调用生成内部类实例 T5 t = new T5(); // 内部类的实例化 Inc inc = t.new Inc(); // Dec dec = t. new Dec(); Thread thread = null; thread = new Thread(inc); // 实现Runnable的类的实例化,使用带参数的Thread构造方法. thread.start(); thread = t.new Dec(); // 继承Thread的类可以直接实例化. thread.start(); } }
【scratch2.0少儿编程-游戏原型-动画-项目源码】时钟.zip
资源说明: 1:本资料仅用作交流学习参考,请切勿用于商业用途。更多精品资源请访问 https://blog.csdn.net/ashyyyy/article/details/146464041 2:一套精品实用scratch2.0少儿编程游戏、动画源码资源,无论是入门练手还是项目复用都超实用,省去重复开发时间,让开发少走弯路!
python311andpython313
【python】Windows环境安装多个python版本(zip压缩包解压使用,非exe安装非anaconda)
Excel表格模板:年终财务核算管理费用明细分类汇总表(内含公式讲解).xlsx
Excel表格模板:年终财务核算管理费用明细分类汇总表(内含公式讲解).xlsx
【scratch2.0少儿编程-游戏原型-动画-项目源码】水果忍者.zip
资源说明: 1:本资料仅用作交流学习参考,请切勿用于商业用途。更多精品资源请访问 https://blog.csdn.net/ashyyyy/article/details/146464041 2:一套精品实用scratch2.0少儿编程游戏、动画源码资源,无论是入门练手还是项目复用都超实用,省去重复开发时间,让开发少走弯路!
uniApp使用XR-Frame创建3D场景 (6) 点击识别物体 基础代码
uniApp使用XR-Frame创建3D场景 (6) 点击识别物体 基础代码
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章