代码如下,比较坑爹,就是上一篇文章的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线程:概念与原理 1. **操作系统中线程和进程的概念** - 当前的操作系统通常为多任务操作系统,多线程是实现多任务的一种手段。 - **进程**:指内存中运行的应用程序,每个...
### Java多线程的使用与介绍 #### 什么是多线程? 多线程是指程序能够同时执行多个线程的能力。每个线程都是一个轻量级的进程,可以在单个程序中独立运行,共享该程序的资源。在Java中,多线程是通过`java.lang....
Java中的ThreadLocal是一种特殊类型的变量,它主要用于在多线程环境下提供线程范围内的局部变量。每个线程都拥有自己独立的ThreadLocal变量副本,互不影响。这与传统的全局变量不同,全局变量在所有线程间共享,可能...
本文档主要介绍了Java中的多线程编程,包括其基础概念、实现方法、线程控制等方面。 **基本概念** - **进程**:是指计算机正在执行的一个程序实例,比如一个`.class`文件或`.exe`文件。 - **线程**:是进程中的一...
线程同步是为了避免多线程环境下的数据竞争问题,Java提供了多种同步机制。同步方法通过`synchronized`关键字修饰,确保同一时间只有一个线程能访问该方法。同步块(Synchronized Block)更灵活,可以指定同步的代码...
【Java多线程服务器源码】是针对初学者和入门者的一个经典实例,它展示了如何在Java中构建一个多线程的服务器程序。Java语言因为其内置的多线程支持和强大的网络编程能力,使得开发这样的程序变得更加简单和安全。 ...
### 最好的Java多线程电子书 #### 一、并发与多任务 - **并发**:指在同一时间段内,系统能够处理多个任务的能力。在计算机领域中,这意味着多个任务看起来像是同时进行的,但实际上可能是通过快速切换的方式实现...
在本项目“Java多线程与线程安全实践-基于Http协议的断点续传”中,我们将深入探讨如何利用Java的多线程机制实现HTTP协议下的断点续传功能,这对于大文件下载或上传的场景尤为实用。 断点续传是一种允许用户在中断...
- **概念**:线程范围内共享变量是指在线程间共享的数据,需小心处理以避免竞态条件和数据不一致性。 - **作用**:允许线程间通信和协作,但需采用适当的同步机制(如`synchronized`关键字、`Lock`接口)以确保数据...
总的来说,Java多线程操作提供了丰富的控制手段,帮助开发者实现高效的并发编程。通过熟练掌握这些方法,可以更好地管理和协调多个执行流程,提高程序的性能和用户体验。在实际开发中,应根据具体需求灵活运用这些...
### JAVA多线程编程详解 #### 一、深入理解多线程 多线程机制是现代编程语言中处理并发操作的关键技术之一,尤其在资源密集型应用和提高系统响应速度方面发挥着重要作用。在Java中,多线程的实现不仅简化了并发...
Java多线程异常处理是Java编程中不可或缺的一部分,特别是在并发编程场景下,正确处理异常能够保证程序的稳定性和健壮性。本实验报告主要涵盖了Java异常处理机制、多线程概念与实现,以及多线程同步问题。 首先,...
Java多线程同步是编程中一个非常重要的概念,特别是在并发编程中,用于解决多个线程访问共享资源时可能引发的数据不一致问题。本实例通过一个简单的火车票售票系统来演示同步机制的应用。 在这个实例中,我们创建了...
在Java中,多线程是通过创建Thread类的实例或者实现Runnable接口来实现的。通过创建多个线程,程序可以同时执行多个任务,提高了CPU的利用率。线程之间可以通过共享内存进行通信,但同时也可能导致数据竞争问题,这...
继承Thread类的方法直接扩展Thread类,而实现Runnable接口则更适合多线程资源共享的情况,因为Java不支持多重继承。 线程的状态是理解其工作原理的关键。Java线程有五种基本状态:新建(New)、可运行(Runnable)...
除了上述提到的技术点,本教程还会涉及到ThreadLocal类、线程范围内共享变量、多个线程之间共享数据的方式、java5原子性操作类的应用、Callable与Future的应用、线程锁技术、读写锁技术等内容。这些技术点都旨在帮助...
本文将详细介绍Java多线程的基本概念、线程的生命期、线程的状态转换、线程调度原则以及如何实现线程的两种常见方式。 #### 二、线程的相关概念 **1. 进程与线程的区别** - **进程**:是一个正在执行的程序实例,...
Java多线程设计模式是Java编程中至关重要的一个领域,它允许程序同时执行多个任务,提升系统的并发性能和资源利用率。在Java中,多线程主要用于处理I/O密集型任务和计算密集型任务,实现高效的并行处理。本文将深入...
在实现多线程时,Java提供了Thread类和Runnable接口。我们通常会创建一个实现了Runnable接口的类,然后在需要启动新线程的地方实例化并传入Thread构造器。通过调用start()方法,我们可以启动新线程。不过,需要注意...