通过继承Thread类并重写run()方法可创建线程,调用start()方法启动,使线程并发执行,其中Thread.currentThread()用于获取当前线程信息,自定义线程名称有助于调试,适合初学者掌握多线程基础。

在Java中,实现多线程是提升程序并发性能的重要手段。其中,通过继承Thread类是最基础、最直观的创建线程的方式之一。本文将详细介绍如何使用Thread类创建多线程,并讲解线程的启动方式与基本用法,适合初学者快速入门。
继承Thread类创建线程
Java中的Thread类位于java.lang包中,代表一个线程执行单元。要通过继承Thread类创建线程,只需定义一个类继承Thread,并重写其run()方法,该方法中包含线程要执行的任务逻辑。
示例代码如下:
class MyThread extends Thread { public void run() { for (int i = 0; i < 5; i++) { System.out.println(Thread.currentThread().getName() + ": " + i); try { Thread.sleep(100); // 模拟耗时操作 } catch (InterruptedException e) { e.printStackTrace(); } } }}
在主方法中创建并启动线程:
立即学习“Java免费学习笔记(深入)”;
public class ThreadExample { public static void main(String[] args) { MyThread t1 = new MyThread(); MyThread t2 = new MyThread(); t1.start(); // 启动第一个线程 t2.start(); // 启动第二个线程 }}
注意:不能直接调用run()方法。如果调用t1.run(),任务会在主线程中同步执行,不会开启新线程。
Thread.currentThread()的作用
Thread.currentThread()是一个静态方法,用于获取当前正在执行的线程对象。常用于:
获取线程名称:currentThread().getName() 获取线程ID:currentThread().getId() 中断当前线程:currentThread().interrupt()
在上面的例子中,输出会显示每个线程的名字(如Thread-0、Thread-1)和执行的循环值,帮助区分不同线程的运行状态。
零一万物开放平台
零一万物大模型开放平台
36 查看详情
线程的启动方式:start() vs run()
理解start()和run()的区别是掌握多线程的关键。
start():由JVM调用,真正启动一个新线程,系统会为该线程分配资源并自动调用其run()方法。这是正确的启动方式。 run():只是一个普通方法调用。如果直接调用,代码会在当前线程中执行,不会产生新的线程。
错误示例:
t1.run(); // 错误!在主线程中执行,未开启新线程
正确做法始终是调用start()方法。
自定义线程名称
默认情况下,线程名称为Thread-0、Thread-1等,不利于调试。可以通过构造函数设置有意义的名称:
class NamedThread extends Thread { public NamedThread(String name) { super(name); // 设置线程名 } public void run() { System.out.println("线程 " + getName() + " 正在运行"); }}// 使用NamedThread nt = new NamedThread("Worker-1");nt.start();
输出结果会显示“线程 Worker-1 正在运行”,便于日志追踪和问题排查。
基本上就这些。使用Thread类创建线程简单直接,适合学习多线程的基本概念和执行流程。虽然实际开发中更多采用实现Runnable接口的方式(避免单继承限制),但理解Thread类的使用仍是Java多线程的入门必经之路。
以上就是Java如何使用Thread类创建多线程_Java多线程入门与线程启动方式详解的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/895840.html
微信扫一扫
支付宝扫一扫