`
我改名了
  • 浏览: 89238 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

java Thread start() 特性

阅读更多

写了两个简单的类。本来写这两个类的初衷是为了 验证 log4j 异步打印日志时的 MDC 衔接问题。但是由于疏忽,有个地方写错了。

public class TestLog {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		for (int i = 1; i <= 5; i++) {
			LogThread lt = new LogThread("aaa_" + i);
			lt.setName("aaa_" + i);
			lt.start();
		}
	}

}

 

public class LogThread extends Thread{
	String message;
	private Logger log = Logger.getLogger(this.getClass().getName());
	public LogThread(String tranId) { 
		this.message =  tranId;
		MDC.put("tranId", message);
	}
	@Override
	public void run() {
			log.info(message+"_"+MDC.get("tranId"));
	}
}

 运行结果如下:

[105614.713][INFO ](aaa_1) aaa_1_null  [LogThread.java:18 ]
[105614.713][INFO ](aaa_4) aaa_4_aaa_3  [LogThread.java:18 ]
[105614.713][INFO ](aaa_3) aaa_3_aaa_2  [LogThread.java:18 ]
[105614.713][INFO ](aaa_2) aaa_2_aaa_1  [LogThread.java:18 ]
[105614.713][INFO ](aaa_5) aaa_5_aaa_4  [LogThread.java:18 ]

能看出什么地方写错了吗?

分享到:
评论

相关推荐

    Java Thread Programming (Sams) java线程编程(含code)

    综上所述,"Java Thread Programming (Sams)"涵盖了Java线程编程的各个方面,包括基础概念、创建与管理、同步机制、异常处理、线程池和高级特性。通过阅读和实践其中的代码,开发者能深入理解Java线程编程的精髓,...

    Java8新特性示例代码

    new Thread(task).start(); ``` #### 3. 方法引用和构造器引用 除了Lambda表达式,Java8还引入了方法引用和构造器引用,它们可以直接引用已有方法或构造器,进一步简化代码。例如: ```java Function, Integer&gt; ...

    Java中Runnable和Thread的区别

    `Thread`类在`java.lang`包中定义,提供了一系列与线程生命周期管理相关的功能,如`start()`, `join()`, `interrupt()`等。 #### 优缺点 - **优点**:继承`Thread`类可以直接调用`Thread`类的其他方法,如设置线程...

    Java高级特性入门二.pdf

    - 创建:通过new Thread()创建线程对象,调用start()方法启动线程。 - 就绪:线程获取到CPU时间片后开始执行。 - 运行:线程执行run()方法中的代码。 - 阻塞:线程等待资源或因为其它线程而暂停执行。 - 等待:线程...

    JDK8新特性(pdf版)

    JDK8新特性课程内容包括了解Java发展史、Lambda表达式、接口的增强、函数式接口、方法引用、Stream API、Optional、新时间日期API等。 一、Java发展历史 Java的发展历史可以追溯到1991年,Sun公司成立了一个称为...

    java的thread类重写run方法的双线程从1加到100

    在Java编程语言中,多线程是并发执行任务的关键特性,极大地提高了程序的效率和响应速度。本小练习主要关注如何通过继承`Thread`类来创建并运行双线程,以便从1累加到100。下面我们将深入探讨这个话题。 首先,`...

    java_Getting_Start.rar_java getting sta

    多线程是Java的一大亮点,通过Thread类和Runnable接口,开发者可以创建并管理多个并发执行的线程,实现高效的并发编程。 I/O流处理是Java中处理输入输出的关键,包括文件操作、网络通信等。Java提供了一套丰富的流...

    JavaStart

    《JavaStart》是一本专为初学者设计的Java编程书籍,旨在帮助那些刚刚踏入IT行业的新人或是对编程感兴趣的读者快速掌握Java语言的基础知识。这本书详细介绍了Java编程的基本概念、语法和应用,是初学Java人员的必备...

    Java课件\thread.rar

    Java线程是多任务编程中的核心概念,它允许程序同时执行多个不同的任务,极大地...通过本课件的学习,您将能够熟练掌握Java线程的基本概念、创建与管理,以及高级特性,为编写高效、安全的多线程Java程序打下坚实基础。

    javathread.part05.rar

    `javathread.part05.rar`这个压缩包很可能包含了一组关于Java线程进阶教程或实例代码,这部分内容可能涵盖了Java线程的高级特性和实战应用。 Java线程允许程序同时执行多个任务,提高了程序的并发性。在Java中,...

    java线程Thread的实例

    `Thread`类是Java中用于实现线程的基本接口,它位于`java.lang`包中。本实例将深入探讨`Thread`类的使用,这对于初学者掌握多线程编程至关重要。 在Java中,创建线程主要有两种方式:继承`Thread`类和实现`Runnable...

    java多线程thread实例

    在Java编程语言中,多线程是实现并发执行任务的关键特性。`Thread`类是Java中的核心类,它允许我们创建并控制独立的执行线程。在这个实例中,我们将深入探讨如何使用`Thread`类创建和管理多线程。 1. **线程的基本...

    JavaThread编程基础.pdf

    然而,对于SCJP(Sun Certified Programmer for the Java Platform)考试而言,重要的是理解Java线程的行为特性,哪些是确定的,哪些是不确定的。因为JVM的实现差异,开发者需要编写出不依赖特定JVM实现的代码,以...

    java_Thread.rar_java 多线程_java多线程

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,从而提高系统资源的利用率和程序的...通过"java_Thread.txt"这样的实例学习,可以帮助我们更好地理解和应用Java的多线程特性,提升我们的编程能力。

    Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。

    在Java中,实现多线程的两种主要方式分别是:**通过继承`Thread`类** 和 **实现`Runnable`接口**。下面将详细介绍这两种方式,并提供相应的示例程序。 #### 一、通过继承`Thread`类实现多线程 在Java中,可以通过...

    java中thread线程start和run的区别

    `Thread`类是Java中用于创建和管理线程的核心类,而`start()`和`run()`方法是与线程执行密切相关的方法,它们之间存在显著的区别。 首先,`run()`方法是`Runnable`接口或`Thread`类中的一个成员方法。当你需要创建...

    李兴华java1.8视频笔记

    Java是一种支持多线程编程的语言,多线程是指在一个进程中...以上内容详细介绍了Java多线程的实现方式、线程常用操作、Java基础类库、正则表达式、反射机制、类集框架、Stream新特性以及Java数据库编程的相关知识点。

    java-Thread、 java-IO.zip

    NIO(New IO)是Java 1.4引入的新特性,提供了非阻塞I/O操作,提高了读写效率,特别适用于网络编程和高并发场景。 Java还提供了File类来处理文件操作,如创建、删除、重命名文件以及获取文件属性。RandomAccessFile...

    Java高级特性 - 多线程练习题.zip

    继承`Thread`类后重写`run()`方法,直接实例化并调用`start()`方法即可启动线程;而实现`Runnable`接口则需要将`run()`方法实现体放在类中,并通过`Thread`类的构造函数传入`Runnable`对象,然后启动线程。 2. **...

Global site tag (gtag.js) - Google Analytics