张孝祥[致敬]-多线程学习第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
原创粉丝点击