Java 多线程问题例子
来源:互联网 发布:万方数据库与知网比较 编辑:程序博客网 时间:2024/05/17 23:01
package SixthChapterXianCheng;class Ck { private char[] rl = new char[8]; private int wp = 0; public synchronized void shengchan(char aa) { while (wp == rl.length) { try { this.wait(); } catch (Exception e){} } this.notify(); //叫醒另一个线程。是在当前线程处于就绪状态的前提下 rl[wp] = aa; ++wp; System.out.println("生产线程正在生产第"+wp+"个产品,该产品是:"+aa); } public synchronized void xiaofei() { char aa; while (wp == 0) { try { this.wait(); } catch (Exception e){} } this.notify(); aa = rl[wp-1]; System.out.println("消费线程正在消费第"+wp+"个产品,该产品是:"+aa); --wp; } }class Sc implements Runnable{ private Ck xc = null; public Sc(Ck xc)//用于初始化对象,一旦创建Sc对象后就会初始化,就会传进来一个Sc类 { this.xc = xc; } public void run()//run方法是两个线程,同时执行 { char aa; for (int i=0; i<26; i++) { aa = (char)('A'+i); xc.shengchan(aa); } }}class Xf implements Runnable{ private Ck xc = null; public Xf(Ck xc) { this.xc = xc; } public void run() { for (int i=0; i<26; i++) { xc.xiaofei(); } }}public class L6_12{ public static void main(String[] args) { Ck ck = new Ck(); Sc sc = new Sc(ck); Xf xf = new Xf(ck); Thread xc1 = new Thread(sc); xc1.start(); Thread xc2 = new Thread(xf); xc2.start(); }}
//run方法是两个线程,同时执行。两个run方法又调用两个方法【xc.shengchan(aa); xc.xiaofei();】因此是被调用的两个方法分为两个
//线程去同时执行。两个同时执行的方法被synchronized 修饰,一次性执行完。
0 0
- Java 多线程问题例子
- java多线程小例子
- java多线程例子
- JAVA多线程经典例子
- java多线程例子
- java多线程例子
- java多线程例子
- java多线程例子
- java多线程例子
- Java 多线程 简单例子
- java多线程Socket例子
- java多线程例子
- java多线程例子
- java多线程例子
- java多线程例子
- java多线程例子
- java多线程源码例子
- java多线程例子
- 在tabbar上添加小红点
- Ant
- 带有边框效果的图片裁剪
- 为何ViewController释放后不走dealloc
- Java内存模型与线程
- Java 多线程问题例子
- 【完全版】线段树
- opencl 插值取样的一个代码
- ES6 生成器
- POJ NO.2718 Smallest Difference(DFS)
- 杭电题库刷题记录2011
- 如何在网页上生成验证码?
- Android性能优化总结
- Kafka实战-KafkaOffsetMonitor