线程间的同步理解。
2015-06-23 00:50
232 查看
package com.thread.text; public class thradDay2 { /** * @param args */ public static void main(String[] args) { Res res = new Res(); //现在我要给他 Thread th1 = new Thread(new Input(res)); Thread th2 = new Thread(new Output(res)); th1.start(); th2.start(); } } class Res { String name; String sex; } /* * 用于输入的类 */ class Input implements Runnable { private Res res; int x = 0; public Input(Res res) { this.res = res; } public void run() { while (true) { //注意这里加的锁。是Output类的字节码。这样可以实现线程间的同步 synchronized (Output.class) { if (x == 0) { res.name = "zhulang"; res.sex = "nane"; } else { res.name = "朱浪"; res.sex = "nv"; } x = (x + 1) % 2; } } } } /* * 用于输出的类 */ class Output implements Runnable { private Res res; public Output(Res res) { this.res = res; } public void run() { while (true) { synchronized (Output.class) { // 用于输出 System.out.println(res.name + ".>....." + res.sex); } } } }
相关文章推荐
- 程序员修炼之道阅读笔记之三
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-08 数据修改
- 日志迁移
- [转]Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Sprint11
- 死锁检测为什么耗时?
- MTK Flashtool / Smart Phone Flash Tool / flash_tool 使用教程
- fgets和fputs
- 贪心算法之最优分解(实验报告版)
- PCB线宽与电流关系
- Sprint10
- 自定义listView添加滑动删除功能
- 数据结构基础温故-1.线性表(上)
- 深入解析Windows操作系统之基础概念和术语
- 安卓自动更新功能实现+安卓调用默认浏览器打开指定URL
- 谈谈Ext JS的组件――组件基类:Ext.Component
- Sprint9
- 依赖倒置 控制反转 依赖注入
- 重装系统后phpStudy如何启动
- leetcode 34 -- Search for a Range