`

多线程 ThreadLocal Runnable Thread 的深层体会

阅读更多
public class ThreadUtil {

  public static void main(String[] args) throws InterruptedException {
   
        PrimeRun p = new PrimeRun();
    	System.out.println("多线程中的变量:");
    	for(int i=0;i<10;i++){
    		new Thread(p).start();
    	}
    	Thread.sleep(1000);
    	System.out.println("当前线程中的变量:");
    	System.out.println(p.getParam()+">>>>>>"+p.getT().get()); 
   }
}


public class PrimeRun implements Runnable {
    
	private static int param=0;
	
	private static ThreadLocal t=new ThreadLocal();

	static{
		t.set(0);
	}
	
	public void run() {
		t.set(param++);
		System.out.println(param+">>"+t.get());
    }
	public static int getParam() {
		return param;
	}
	public static void setParam(int param) {
		PrimeRun.param = param;
	}
	public static ThreadLocal getT() {
		return t;
	}
	public static void setT(ThreadLocal t) {
		PrimeRun.t = t;
	}
}



运行结果::

多线程中的变量:
1>>0
2>>1
3>>2
5>>4
5>>3
7>>5
8>>7
9>>8
7>>6
10>>9
当前线程中的变量:
10>>>>>>0

说明:::

1.  ThreadLocal变量在各个线程中相互独立,即:操作的只是ThreadLocal变量的副本,本身并没有改变。
2.  Runnable,Thread  只是实现多线程的一种方式,非ThreadLocal变量在各个线程中是共享的,即:操作的是变量本身

分享到:
评论

相关推荐

    面试中多线程问题

    Java 中有两种方式可以实现多线程:继承 Thread 类和实现 Runnable 接口。继承 Thread 类是实现多线程的一种方式,但它有一个缺点,就是 Java 不支持多继承。如果我们需要继承其他类,同时也需要继承 Thread 类,...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    多线程面试题

    在Java编程领域,多线程是面试中常见且重要的知识点,尤其对于系统设计和高并发处理的岗位至关重要。本文将围绕“多线程面试题”这一主题,深入探讨相关概念、技术及其应用。 1. **线程的概念**:线程是程序执行的...

    【JAVA多线程】多线程编程核心技术学习资料

    Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在现代计算机系统中,多线程技术尤其关键,因为它们能够充分利用多核处理器的能力。这份"Java多线程编程...

    多线程的实验

    在Java或C++等支持多线程的编程语言中,创建线程通常有两种方式:继承Thread类或实现Runnable接口。例如,在Java中,创建一个线程可以这样做: ```java class MyThread extends Thread { public void run() { // ...

    多线程终极案例程序(多线程进阶)

    Java中的`volatile`关键字、`Atomic`类和`ThreadLocal`变量可以帮助我们在多线程环境下正确地管理共享状态,防止数据不一致和竞态条件。 最后,性能优化也是多线程编程的重要一环。通过合理调度线程、避免不必要的...

    JAVA 多线程的PPT和示例

    在Java中,多线程主要通过两种方式实现:继承Thread类和实现Runnable接口。这份"JAVA多线程的PPT和示例"将深入讲解这些内容,帮助开发者更全面地理解和掌握Java多线程技术。 首先,让我们来看看继承Thread类的多...

    java多线程设计

    在Java编程中,多线程设计是实现高效并发处理的关键技术。它允许程序中的多个执行单元(线程)同时运行,提高系统资源利用率并优化性能。本知识点将深入探讨Java多线程设计以及如何利用“不可变对象”(immutable ...

    java 多线程编程实战指南(核心 + 设计模式 完整版)

    《Java多线程编程实战指南》这本书深入浅出地讲解了Java多线程的核心概念和实战技巧,分为核心篇和设计模式篇,旨在帮助开发者掌握并应用多线程技术。 1. **线程基础** - **线程的创建**:Java提供了两种创建线程...

    Java多线程的总结

    Java多线程是Java编程中的一个核心概念,它在现代软件开发中扮演着至关重要的角色。多线程允许程序同时执行多个任务,提高了系统资源的利用率,提升了应用程序的响应速度和并发性能。对于大型分布式系统、Web应用...

    实现增强多线程命令.rar

    7. **线程局部存储**:线程局部变量(ThreadLocal in Java)可以为每个线程维护独立的副本,避免在多线程环境中使用全局变量可能引发的问题。 8. **异常处理**:在多线程环境中,应确保每个线程都有适当的异常处理...

    Java多线程程序设计-JSP教程,Java技巧及代码

    在Java中,有两种主要的方式来实现多线程:继承Thread类和实现Runnable接口。 首先,我们要理解多线程的基本概念。多线程是一种并发执行多个指令流的技术,每个指令流被称为一个线程。线程比进程更轻量级,因为它们...

    浅谈JAVA中多线程的实现.zip

    在Java编程语言中,多线程是程序设计中的一个重要概念,尤其在开发高效能、响应迅速的应用时。本文将深入探讨Java中多线程的实现,帮助开发者理解如何利用这一特性来优化应用程序。 多线程是指在一个程序中同时运行...

    Java多线程实例代码

    在Java中,实现多线程有两种主要方式:通过继承`Thread`类和实现`Runnable`接口。 1. 继承Thread类: 当你需要创建一个新的线程时,可以创建一个新类来继承`Thread`类。重写`run()`方法,在其中编写线程要执行的...

    多线程实例+源代码

    1. **Java多线程基础**:Java提供了多种方式创建线程,如继承Thread类、实现Runnable接口以及使用ExecutorService。理解这些创建线程的方法及其优缺点是学习多线程的基础。 2. **线程生命周期**:线程有新建、就绪...

    自己总结的多线程

    在Java中,多线程的实现通常借助于`Thread`类或实现`Runnable`接口。多线程能够提高CPU的利用率,改善应用程序性能。 #### 2. Java中的线程生命周期 - **新建** (`NEW`):新创建的线程。 - **可运行** (`RUNNABLE`)...

    JAVA-多线程 所有文件

    在Java编程语言中,多线程是程序设计中的一个重要概念,尤其在开发高效能和响应迅速的应用时。这个“JAVA-多线程 所有文件”压缩包很可能包含了一系列关于Java多线程学习的源代码示例和相关文档。下面我们将深入探讨...

    我总结的Java多线程程序设计

    Java多线程程序设计是Java开发中的重要组成部分,它允许程序在同一时间执行多个任务,从而提高了系统的效率和响应性。本文将深入探讨Java多线程的相关概念和实现方式。 一、理解多线程 1. **线程定义**:线程是一...

    Android多线程全新讲解.pdf

    Java中的多线程是通过继承Thread类和实现Runnable接口来创建的,每个线程都必须通过start()方法来启动,该方法会调用线程的run()方法。 2. Java多线程高级特性:内容中出现的“ThreadLocal”,“CyclicBarrier”,...

    java单线程多线程clientserver

    Java中的单线程和多线程是编程中的关键概念,特别是在服务器端开发中。了解它们的原理和应用对于构建高效、可扩展的客户端-服务器应用至关重要。以下是对这些概念的详细解析。 首先,我们来谈谈单线程。在Java中,...

Global site tag (gtag.js) - Google Analytics