您的位置:首页 > 其它

简单实现多线程数据共享

2015-08-25 23:34 337 查看
public class MultiThreadShareData {

/**

* @param args

*/

public static void main(String[] args) {

// ShareData1 shareData = new ShareData1();

// new Thread(shareData).start();

// new Thread(shareData).start();

final ShareData1 shareData = new ShareData1();

//方法1

/*new Thread(new Runnable(){

@Override

public void run() {

shareData.increment();

}

}).start();

new Thread(new Runnable(){

@Override

public void run() {

shareData.decrement();

}

}).start();*/

//方法2

new Thread(new MyShareData1(shareData)).start();

new Thread(new MyShareData2(shareData)).start();

}

static class ShareData1 implements Runnable{

private int count = 100;

@Override

public void run() {

while(true){

count--;

}

}

private int j = 0;

public synchronized void increment(){

j++;

}

public synchronized void decrement(){

j--;

}

}

static class MyShareData1 implements Runnable{

private ShareData1 data;

public MyShareData1(ShareData1 data){

this.data = data;

}

@Override

public void run() {

data.increment();

}

}

static class MyShareData2 implements Runnable{

private ShareData1 data;

public MyShareData2(ShareData1 data){

this.data = data;

}

@Override

public void run() {

data.decrement();

}

}

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