多线程初探(七)
来源:互联网 发布:电脑软件技术培训 编辑:程序博客网 时间:2024/05/16 10:44
package com.liujunhua.it02;/** * 线程间的通信: * 所谓线程间通信就是多个线程操作同一个资源,但操作的动作不同。 * * 这里输入和输出线程会抢夺cpu执行权,如果输入线程抢到了cpu的执行权就会一直执行执行赋值操作,显然当前的赋值操作会覆盖 * 上一次的赋值操作。如果输出线程抢到了cpu的执行权时,就会一直进行输出操作,显然,在其有执行权的期间它会一直对当前的 * 值进行不停的输出。 * */public class Demo03 {public static void main(String[] args) { //创建了一个资源对象Res r = new Res();/* * 将Runnable子类的两个对象实例化 * 通过参数传递将r传递到in和out对象中 * in和out是对同一个r对象进行操作 */Input in = new Input(r);Output out = new Output(r);//将Runnable对象与线程联系起来Thread t1 = new Thread(in);Thread t2 = new Thread(out);t1.start();t2.start();}}class Res {String name;String sex;}class Input implements Runnable {private Res r;Input(Res r) {this.r = r;}@Overridepublic void run() {// TODO Auto-generated method stubint mark = 0;while (true) {synchronized (r) {if (mark == 0) {r.name = "mike";r.sex = "man";} else {r.name = "丽丽";r.sex = "女女";}mark = (mark + 1) % 2;}}}}class Output implements Runnable {private Res r;Output(Res r) {this.r = r;}@Overridepublic void run() {// TODO Auto-generated method stubwhile (true) {synchronized (r) {System.out.println(r.name + "........" + r.sex);}}}}
0 0
- 多线程初探(七)
- python学习七:正则表达式、多线程初探
- Oracle初探(七)
- 集合初探(七)
- java 初探(七)
- 多线程初探(一)
- 多线程初探(二)
- 多线程初探(三)
- 多线程初探(四)
- 多线程初探(五)
- 多线程初探(六)
- 多线程初探(八)
- tolua++初探(七)(转)
- C++多线程(七)
- C++多线程(七)
- 多线程(七):AtomicInteger
- python3爬虫初探(七)使用MySQL
- 多线程初探
- android 的Menu菜单
- Android之替换APP字体——Typeface
- iOS崩溃调试的使用和技巧总结
- java之单例模式【整理】
- GNU gcc 和 g++ 的区别详解
- 多线程初探(七)
- 屏幕截图ScreenShot方法总结
- 史上最详细的Android Studio系列教程(一)--下载和安装
- PHP ( $_SERVER[" ... "]的用法)
- 静态资源较多的站点使用nginx与apache的负载均衡架构
- 通过java.net.URLConnection发送HTTP请求的方法
- 史上最详细的Android Studio系列教程(二)--基本设置与运行
- 双网卡在同一网段的解决办法
- MyEclipse 2015 Stable 2.0 在线安装SVN插件(Subclipse)