`

线程范围内共享变量的概念与作用

阅读更多
/**
 * ThreadScopeShareData.java
 * cn.com.songjy.test.socket.thread
 * Function: TODO 
 *
 *   version    date      author
 * ──────────────────────────────────
 *   	1.0	 2013-8-16    songjy
 *
 * Copyright (c) 2013, TNT All Rights Reserved.
*/

package cn.com.songjy.test.socket.thread;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * ClassName:ThreadScopeShareData
 * 线程范围内共享变量的概念与作用
 * @author   songjy
 * @version  1.0
 * @since    v1.0
 * @Date	 2013-8-16	下午4:04:45
 */

public class ThreadScopeShareData {
	
	private static Log log = LogFactory.getLog(ThreadScopeShareData.class);
	private static Map<Thread, Integer> thread_data = new HashMap<Thread, Integer>();
	private static int data;

	public static void main(String[] args) {
		
		for(int i=0; i<5; i++)
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				data = new Random().nextInt();
				int data = new Random().nextInt();
				log.info(Thread.currentThread().getName() + " has put data :" + data);
				thread_data.put(Thread.currentThread(), data);
				new A().get();
				new B().get();
			}
		}).start();
	}
	
	static class A {
		public void get(){
			int data = thread_data.get(Thread.currentThread());
			log.info("A from " + Thread.currentThread().getName() + " get data :" + data);
		}
	}
	
	static class B {
		public void get(){
			int data = thread_data.get(Thread.currentThread());
			log.info("B from " + Thread.currentThread().getName() + " get data :" + data);
		}
	}
}



引自
http://down.51cto.com/data/443412
  • 大小: 149 KB
  • 大小: 119.8 KB
分享到:
评论

相关推荐

    Java多线程与并发库高级应用视频教程22集

    【】01传统线程技术回顾【】02传统定时器技术回顾【】03传统线程互斥技术【】04传统线程同步通信技术【】04传统线程同步通信技术_分割纪录【】05线程范围内共享变量的概念与作用【】06ThreadLocal类及应用技巧【】06...

    多线程编程指南PDF

    多线程概念..................................................................................................................................................18 并发性和并行性..............................

    多线程编程指南(系统描述了线程标准 线程同步 多线程编程原则 等)

    多线程概念18 并发性和并行性 18 多线程结构一览 18 线程调度19 线程取消19 线程同步20 使用64 位体系结构20 2 基本线程编程23 线程库..............................................................................

    Java并发编程实战

    书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高...

    JAVA面试题最全集

    描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6.说明Jsp中errorPage的作用,应用范围。 7.介绍在Jsp中如何使用JavaBeans。 8.简单介绍...

    超级有影响力霸气的Java面试题大全文档

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的...

    java 面试题 总结

    对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 4、String 和StringBuffer的区别 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符...

    精通MFC (光盘) 源代码

    7.11.4 使用线程范围和钩子实例 7.11.5 使用全局钩子实例 7.12 小结 第8章 对话框 8.1 对话框的生存期 8.1.1 对话框的创建 8.1.2 对话框的初始化 8.1.3 对话框的消息处理 8.1.4 对话框的结束 8.2 数据交换...

    java面试800题

    volatile:volatile变量表示保证它必须是与主内存保持一致,它实际是""变量的同步"", 也就是说对于volatile变量的操作是原子型的,如用在long 或 double变量前,一般用于多线程编程。 abstract:抽象,必须重载,修饰...

    C# 程序设计手册(WORD)

    与其他应用程序共享程序集 466 使用属性 468 明示属性目标 470 使用反映存取属性 472 使用属性建立 C/C++ 等位 475 常见属性 476 全局属性 479 集合类别 483 使用 foreach 存取集合类别 484 使用例外状况 489 例外...

    UNIX 高级教程系统技术内幕

    3.7.1 Mach 的抽象概念——任务和线程 3.7.2 Mach 的C-threads 3.8 Digital UNIX 3.8.1 UNIX 接口 3.8.2 系统调用和信号 3.8.3 pthreads 线程库 3.9 Mach 3.0 的续体 3.9.1 编程模型 3.9.2 使用续体 3.9.3 优化 ...

    深入解析Windows操作系统中文.part2.rar

    检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈,包括映射、API、名称解析和协议驱动程序;诊断...

    C#微软培训资料

    C#语言在.NET 框架中的作用及其特性 1.1 Microsoft.NET 一场新的革命 1.1.1 什么是.NET 2000 年 6 月 22 日 不论对 Microsoft 还是对整个 IT 业界都将成为值得纪念的一天 这一天 微软公司正式推出...

    软件工程-理论与实践(许家珆)习题答案

    软件工具的作用是为了延长软件产品的寿命。(×) 9. 软件工程过程应该以软件设计为中心,关键是编写程序。(×) 10. RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而后者将被废弃。...

    软件工程知识点

    在进行概要设计时,模块的独立性是一个有关质量的重要技术性指标,可以使用模块的内聚、耦合这两个定性参数对模块独立性进行度量。 2.软件详细设计 设计工作的第二步是详细设计,它以概要设计为依据,用于确定软件...

    ASP3《高级编程》(第一部分)

    书名: ASP 3高级编程 英文原书名: Professional Active Server Pages 3.0 作者: Richard Anderson Chris Blexrud 译者: 刘福太 张立民 金慧琴 梁发麦 ...15.2.4 线程模型和范围 472 15.3 ...

    ASP3《高级编程》(第二部分)

    书名: ASP 3高级编程 英文原书名: Professional Active Server Pages 3.0 作者: Richard Anderson Chris Blexrud 译者: 刘福太 张立民 金慧琴 梁发麦 ...15.2.4 线程模型和范围 472 15.3 ...

    Solaris链接程序和库指南

    多线程概念.......................................................................................................................................... 18 并发性和并行性 ....................................

    操作系统(内存管理)

    本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。 追溯到在 Apple II 上进行汇编语言编程的时代,那时内存管理还不是个大问题。您实际上在运行整个系统。系统有多少内存,您就有多少内存。您甚至...

Global site tag (gtag.js) - Google Analytics