社区
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实现
...全文
329
3
打赏
收藏
设置两个线程一个对i加1 另一个对i减2 并保证i在0到20之间 java实现
设置两个线程一个对i加1 另一个对i减2 并保证i在0到20之间 java实现
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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(); } }
Java
多
线程
快速上手经典
从零开始讲述
Java
多
线程
的核心知识,通过板书和一步一步画图的... 3:代码演示:interrupt的使用这里是《
Java
并发编程与源码分析》的第一部分——讲述多
线程
核心基础
实现
快速上手多
线程
的经典之作
Java
多
线程
精讲上
本课程是《零基础学
Java
》系列课程中的"多
线程
"相关课程.授课形式延续了之前课程的授课风格。内容细腻、详尽,由浅入深!通过本门课程的学习你可以深刻理解
Java
多
线程
的原理及
实现
运行机制,深刻学习多
线程
的生命...
JAVA
多
线程
精讲下
本课程是《零基础学
Java
》系列课程中的"多
线程
"相关课程.授课形式延续了之前课程的授课风格。内容细腻、详尽,由浅入深!通过本门课程的学习你可以深刻理解
Java
多
线程
的原理及
实现
运行机制,深刻学习多
线程
的生命...
Java
内核原理入门到实战(大神必经之路)
Java
对通过网络下载的类具有
一个
安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让
Java
应用
设置
安全哨兵。
Java
语言是...
Java
线程
&并发
本课程主要讲解cpu缓存、
java
内存模型、
线程
的创建、
线程
池、
线程
同步、锁、CAS。 帮助学员处理高并发下,
线程
的开发任务。
Java SE
62,614
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章