您的位置:首页 > 其它

多线程篇五:多个线程访问共享对象和数据的方式

2016-10-31 23:12 465 查看
1.多个线程共享一个变量实现方式1 : 将共享数据封装当另外一个对象中,然后将这个对象传递给各个Runnable对象

package com.test.shareData;

/**
* 4个线程,其中两个每次对j加1,另外两个每次对j减1
* @author Administrator
*
*/
public class MultiThreadShareDataTest {
private int j;

public static void main(String[] args) {
MultiThreadShareDataTest test=new MultiThreadShareDataTest();
IncTest in =test.new IncTest();
DecTest de =test.new DecTest();
for(int i=0;i<2;i++){
Thread t1=new Thread(in);
t1.start();

t1=new Thread(de);
t1.start();
}
}

private synchronized void inc(){
j++;
System.out.println("Current Thread :"+Thread.currentThread().getName()+" j:"+j);
}

private synchronized void dec(){
j--;
System.out.println("Current Thread :"+Thread.currentThread().getName()+" j:"+j);
}

class IncTest implements Runnable{
@Override
public void run() {
for(int i=0;i<100;i++){
inc();
}
}
}

class DecTest implements Runnable{
@Override
public void run() {
for(int i=0;i<100;i++){
dec();
}
}
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: