Java编程多线程之共享数据代码详解

  

本文主要总结线程共享数据的相关知识,主要包括两方面:一是某个线程内如何共享数据,保证各个线程的数据不交叉;一是多个线程间如何共享数据,保证数据的一致性。

  

线程范围内共享数据

  

自己实现的话,是定义一个地图,线程为键,数据为值,表中的每一项即是为每个线程准备的数据,这样在一个线程中数据是一致的。

  

例子         包com.iot.thread;   进口java.util.HashMap;   进口java.util.Map;   进口java.util.Random;/* *   *由布莱恩>   包com.iot.thread;   进口java.util.Random;/* *   *由布莱恩>   包com.iot.thread;/* *   *由布莱恩2016/2/4。   */公开课MutiThreadShareData {   私有静态MutiShareData MutiShareData=https://www.yisu.com/zixun/new MutiShareData ();   公共静态void main (String [] args) {   for (int i=0;我+ +){<3;   新线程(   新的Runnable () {   @Override   公共空间run () {   System.out.println (Thread.currentThread () + ": {j从“+ mutiShareData.getJ () + " + ": " + mutiShareData.increment () + "} ");   }   }   ).start ();   }   for (int i=0; i<2,我+ +){   新线程(   新的Runnable () {   @Override   公共空间run () {   System.out.println (Thread.currentThread () + ": {j从“+ mutiShareData.getJ () +”——:“+ mutiShareData.decrement () + "} ");   }   }   ).start ();   }   }   }/* *   *将共享数据封装在另一对象中(操作数据的方法也在该对象完成)   */类MutiShareData {   私人int j=0;   公共同步int increment () {   返回+ + j;   }   公共同步int减量(){   返回——j;   }   公共同步int getJ () {   返回j;   }   公共同步空白setJ (int j) {   这一点。j=;   }   }      

总结

  

以上就是本文关于Java编程多线程之共享数据代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Java编程多线程之共享数据代码详解