- 4
- 0
- 约1.16万字
- 约 9页
- 2017-02-21 发布于贵州
- 举报
java核心知点学习----多线程间的数据共享和对象独立,ThreadLocal详解
线程内的数据共享与对象独立,举例:张三给李四转钱,开启A线程去执行转钱这个动作,刚好同时王五给赵六转钱,开启B线程去执行转钱,因为是调用的同样一个动作或者说对象,所以如果不能保证线程间的对象独立,那么很有可能发生,张三给李四转钱时把王五转给赵六的转钱一块提交了,而王五转钱整个动作还未完成,那么就造成了转钱错误,?所以线程间一方面要保证数据的共享,另一方面要保证对象的对立.
1.用Map封装对象以数据实现共享
package com.amos.concurrent;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
/**
* @ClassName: ThreadScopeShareData
* @Description: 下面的例子用的是Map对象将数据实现共享
* @author: amosli
* @email:hi_amos@
* @date Apr 20, 2014 6:19:02 PM
*/
public class ThreadScopeShareData
public static Map Object, Integer map new HashMap Object, Integer ; public static void main String[] args for int i 0; i 3; i++ new Thread new Runnable public void run int data new Random .nextInt ;//给data设值, System.out.println Thread.currentThread .getName + set data: + data ; map.put Thread.currentThread , data ;//将值按照Thread去设值,取的时候也按Thread去取,以保证数据的共享,但又保证了对象的独立. new A .get ; new B .get ; .start ; static class A //这里A和B的方法虽然是一样的,这里是想表示有可能调用不同的对象去执行数据操作 public int get data map.get Thread.currentThread ; System.out.println a from thread: + Thread.currentThread .getName + is + data ; return data; static class B public int get int data map.get Thread.currentThread ; System.out.println b from thread: + Thread.currentThread .getName + is + data ; return data; 运行效果:
?2.使用ThreadLocal实现数据共享
创建ThreadLocal,可以直接new出来,其设值支技泛型,new ThreadLocal ,如下将上面代码改写:
public class ThreadLocalShareData private static ThreadLocal threadLocal new ThreadLocal ; public static void main String[] args for int i 0; i 3; i++ new Thread new Runnable public void run int data new Random .nextInt ;//给data设值, System.out.println Thread.currentThread .getName + set data: + data ; threadLocal.set data ;//使用ThreadLocal来设值 new A .get ; new B .get ; .start ; static class A //这里A和B的方法虽然是一样的,这里是想表示有可能调用不同的对象去执行数据操作 public int get int data threadLocal.get ; System.out.println a from thread: + Thread.currentThread .getName + is + data ; return data; cla
您可能关注的文档
- HTDN-3H相电能表现场校验仪.doc
- HTDN-3H能表现场校验仪.doc
- HTDN-3C相电能表现场校验仪.doc
- HTDN-H单电能表现场校验仪.doc
- HTDN-H电表现场校验仪.doc
- HTFH-H二负荷测量仪.doc
- HTDR-H全动电容电桥测试仪说明书.doc
- HTRG-H 自动电容电感测试仪说明书320.doc
- HTML与网页作教学大纲.doc
- HTTP协议的信息详解.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)