`
star65225692
  • 浏览: 274403 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

java实现多线程范围内的数据共享

 
阅读更多

代码如下,比较坑爹,就是上一篇文章的hashmap改为了ThreadLocal

public class ThreadScopeShareData {

	/**
	 * @param args
	 */
//	private static HashMap<Thread, Integer> map = new HashMap<Thread, Integer>();
	private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>();
	public static void main(String[] args) {
		for(int i=0;i<2;i++){
			new Thread(new Runnable() {
				@Override
				public void run() {
					int data = new Random().nextInt();
					System.out.println(Thread.currentThread() +" data is "+data);
//					map.put(Thread.currentThread(), data);
					threadLocal.set(data);
					new A().get();
					new B().get();
				}
			}).start();

		}

	}

	static class A{妹,希望你能理解

		public void get(){
			int data = threadLocal.get();//map.get(Thread.currentThread());
			System.out.println("A get data:" + data + " from " + Thread.currentThread().getName());
		}
	}
	
	static class B{
		public void get(){
			int data = threadLocal.get();//map.get(Thread.currentThread());
			System.out.println("B get data:" + data + " from " + Thread.currentThread().getName());
		}
	}
	
}
分享到:
评论

相关推荐

    Java多线程下载

    为了解决这个问题,Java多线程下载利用了操作系统并发处理的能力,将一个大文件分割成多个小部分,每个部分由一个独立的线程负责下载,从而实现断点续传,提高下载速度。 首先,理解Java多线程的基础概念至关重要。...

    Java多线程编程总结

    ### Java多线程编程总结 #### 一、Java线程:概念与原理 1. **操作系统中线程和进程的概念** - 当前的操作系统通常为多任务操作系统,多线程是实现多任务的一种手段。 - **进程**:指内存中运行的应用程序,每个...

    java多线程的使用和介绍

    ### Java多线程的使用与介绍 #### 什么是多线程? 多线程是指程序能够同时执行多个线程的能力。每个线程都是一个轻量级的进程,可以在单个程序中独立运行,共享该程序的资源。在Java中,多线程是通过`java.lang....

    Java多线程编程之ThreadLocal线程范围内的共享变量

    Java中的ThreadLocal是一种特殊类型的变量,它主要用于在多线程环境下提供线程范围内的局部变量。每个线程都拥有自己独立的ThreadLocal变量副本,互不影响。这与传统的全局变量不同,全局变量在所有线程间共享,可能...

    4JAVA编程高级-多线程编程

    本文档主要介绍了Java中的多线程编程,包括其基础概念、实现方法、线程控制等方面。 **基本概念** - **进程**:是指计算机正在执行的一个程序实例,比如一个`.class`文件或`.exe`文件。 - **线程**:是进程中的一...

    java多线程笔记

    线程同步是为了避免多线程环境下的数据竞争问题,Java提供了多种同步机制。同步方法通过`synchronized`关键字修饰,确保同一时间只有一个线程能访问该方法。同步块(Synchronized Block)更灵活,可以指定同步的代码...

    java多线程服务器源码

    【Java多线程服务器源码】是针对初学者和入门者的一个经典实例,它展示了如何在Java中构建一个多线程的服务器程序。Java语言因为其内置的多线程支持和强大的网络编程能力,使得开发这样的程序变得更加简单和安全。 ...

    最好的java多线程电子书

    ### 最好的Java多线程电子书 #### 一、并发与多任务 - **并发**:指在同一时间段内,系统能够处理多个任务的能力。在计算机领域中,这意味着多个任务看起来像是同时进行的,但实际上可能是通过快速切换的方式实现...

    Java多线程与线程安全实践-基于Http协议的断点续传

    在本项目“Java多线程与线程安全实践-基于Http协议的断点续传”中,我们将深入探讨如何利用Java的多线程机制实现HTTP协议下的断点续传功能,这对于大文件下载或上传的场景尤为实用。 断点续传是一种允许用户在中断...

    张孝祥Java多线程与并发库高级应用笔记

    - **概念**:线程范围内共享变量是指在线程间共享的数据,需小心处理以避免竞态条件和数据不一致性。 - **作用**:允许线程间通信和协作,但需采用适当的同步机制(如`synchronized`关键字、`Lock`接口)以确保数据...

    JAVA多线程操作方法实用大全

    总的来说,Java多线程操作提供了丰富的控制手段,帮助开发者实现高效的并发编程。通过熟练掌握这些方法,可以更好地管理和协调多个执行流程,提高程序的性能和用户体验。在实际开发中,应根据具体需求灵活运用这些...

    JAVA多线程编程详解

    ### JAVA多线程编程详解 #### 一、深入理解多线程 多线程机制是现代编程语言中处理并发操作的关键技术之一,尤其在资源密集型应用和提高系统响应速度方面发挥着重要作用。在Java中,多线程的实现不仅简化了并发...

    java 多线程异常处理

    Java多线程异常处理是Java编程中不可或缺的一部分,特别是在并发编程场景下,正确处理异常能够保证程序的稳定性和健壮性。本实验报告主要涵盖了Java异常处理机制、多线程概念与实现,以及多线程同步问题。 首先,...

    Java多线程同步具体实例.doc

    Java多线程同步是编程中一个非常重要的概念,特别是在并发编程中,用于解决多个线程访问共享资源时可能引发的数据不一致问题。本实例通过一个简单的火车票售票系统来演示同步机制的应用。 在这个实例中,我们创建了...

    基于Java实现的多线程与线程安全实践-基于Http协议的断点续传.zip

    在Java中,多线程是通过创建Thread类的实例或者实现Runnable接口来实现的。通过创建多个线程,程序可以同时执行多个任务,提高了CPU的利用率。线程之间可以通过共享内存进行通信,但同时也可能导致数据竞争问题,这...

    关于线程(java)两天的课件

    继承Thread类的方法直接扩展Thread类,而实现Runnable接口则更适合多线程资源共享的情况,因为Java不支持多重继承。 线程的状态是理解其工作原理的关键。Java线程有五种基本状态:新建(New)、可运行(Runnable)...

    经典Java多线程与并发库高级应用

    除了上述提到的技术点,本教程还会涉及到ThreadLocal类、线程范围内共享变量、多个线程之间共享数据的方式、java5原子性操作类的应用、Callable与Future的应用、线程锁技术、读写锁技术等内容。这些技术点都旨在帮助...

    Java多线程技术 线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口

    本文将详细介绍Java多线程的基本概念、线程的生命期、线程的状态转换、线程调度原则以及如何实现线程的两种常见方式。 #### 二、线程的相关概念 **1. 进程与线程的区别** - **进程**:是一个正在执行的程序实例,...

    java多线程设计模式

    Java多线程设计模式是Java编程中至关重要的一个领域,它允许程序同时执行多个任务,提升系统的并发性能和资源利用率。在Java中,多线程主要用于处理I/O密集型任务和计算密集型任务,实现高效的并行处理。本文将深入...

    局域网聊天 SWT Java 多线程问题已经解决

    在实现多线程时,Java提供了Thread类和Runnable接口。我们通常会创建一个实现了Runnable接口的类,然后在需要启动新线程的地方实例化并传入Thread构造器。通过调用start()方法,我们可以启动新线程。不过,需要注意...

Global site tag (gtag.js) - Google Analytics