张孝祥[致敬]-多线程学习第06课-多个线程之间的共享变量
来源:互联网 发布:linux网卡怎么激活 编辑:程序博客网 时间:2024/06/06 19:54
本文地址:http://blog.csdn.net/hblfyla/article/details/53414632
多个线程共享一个变量,例如卖火车票等程序
解决办法:
例子代码:
package org.yla.zxx.day06;/** * 多个线程共享一个变量 * @author yangluan * 2016年11月30日下午9:55:42 */public class MultiThreadShareData {/** * 编写一个程序要求如下 * 有一个共享变量 * 2个线程对这个变量+1 * 2个线程对这个变量-1 * @param args */public static void main(String[] args) {final ShareData data = new ShareData();for (int i = 0; i < 2; i++) {new Thread(new Runnable() {@Overridepublic void run() {data.add();}}).start();new Thread(new Runnable() {@Overridepublic void run() {data.mul();}}).start();}}}class ShareData{private int j=0;public synchronized void add(){for (int i = 0; i < 5; i++) {j++;System.out.println("add: "+j);}}public synchronized void mul(){for (int i = 0; i < 5; i++) {j--;System.out.println("mul: "+j);}}}
运行效果:
add: 1add: 2add: 3add: 4add: 5mul: 4mul: 3mul: 2mul: 1mul: 0mul: -1mul: -2mul: -3mul: -4mul: -5add: -4add: -3add: -2add: -1add: 0本文地址:http://blog.csdn.net/hblfyla/article/details/53414632
0 0
- 张孝祥[致敬]-多线程学习第06课-多个线程之间的共享变量
- 张孝祥[致敬]-多线程学习第05课-线程范围内的共享变量
- 张孝祥[致敬]-多线程学习第01课 传统线程的创建
- 张孝祥[致敬]-多线程学习第03课-线程的互斥与同步
- 张孝祥[致敬]-多线程学习第04课-线程的通信机制
- 张孝祥[致敬]-多线程学习第07课-jdk1.5后增加的多线程高级部分
- 多线程07_张孝祥-多个线程之间共享数据的方式探讨
- 【Java多线程与并发库】06 多个线程之间共享数据的方式探讨
- 张孝祥[致敬]-多线程学习第02课 传统定时器的使用
- 多线程并发库高级应用 之 多个线程之间共享数据的方式探讨
- Java多线程与并发应用-(6)-多个线程之间共享对象和数据的方式
- java多线程并发库高级应用 之 多个线程之间共享数据的方式探讨
- 【Java多线程与并发库】7.多个线程之间共享数据的方式探讨
- 【Java多线程与并发库】7.多个线程之间共享数据的方式探讨
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- Hive 2. 本地模式,分布式配置
- 野指针
- IOS学习(十)UITabViewCell的创建方式
- ODS系统基于存储过程实现数据清洗实例
- metasploit MS09_050
- 张孝祥[致敬]-多线程学习第06课-多个线程之间的共享变量
- >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- Android服务Service-AIDL(三)
- 多线程的几种状态
- 分块查找
- Java中随机数的产生方式与原理
- 212. Word Search II[hard]
- 134. Gas Station
- Java并发编程总结一