多个线程之间共享数据

Posted zhangyugeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多个线程之间共享数据相关的知识,希望对你有一定的参考价值。

public class ThreadDemo4 {
  static ShareData data=new ShareData();
  public static void main(String[] args) {

    new Thread(new Myrunnable1(data)).start();
    new Thread(new Myrunnable2(data)).start();

  }

}

class Myrunnable1 implements Runnable{
  int i=50;

  private ShareData data;

  public Myrunnable1(ShareData data){
    this.data=data;
  }

  @Override
  public void run() {

    while(i>0){
      i--;
    data.increment();}
  }

}


class Myrunnable2 implements Runnable{
  int i=50;

  private ShareData data;

  public Myrunnable2(ShareData data){

    this.data=data;
  }

  @Override
  public void run() {
    while(i>0){
      i--;
    data.decrement();}

  }

}

class ShareData{
private int j=1;
public void increment(){
j++;
System.out.println("加一得 "+j);

}
public void decrement(){

j--;
System.out.println("减一得 "+j);
}


}

以上是关于多个线程之间共享数据的主要内容,如果未能解决你的问题,请参考以下文章

多个线程之间共享数据

C#:在多个进程和/或线程之间共享数据的最佳方式

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

多个线程之间共享数据,(探究)一下十一的车票是怎么卖的

高并发多线程基础之线程间通信与数据共享及其应用

48_并发编程-线程-资源共享/锁