`

java线程创建与启动

阅读更多
ava语言已经内置了多线程支持,所有实现Runnable接口的类都可被启动一个新线程,新线程会执行该实例的run()方法,当run()方法执行完毕后,线程就结束了。一旦一个线程执行完毕,这个实例就不能再重新启动,只能重新生成一个新实例,再启动一个新线程。

Thread类是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过Thread类的start()实例方法:

Thread t = new Thread();
t.start();

start()方法是一个native方法,它将启动一个新线程,并执行run()方法。Thread类默认的run()方法什么也不做就退出了。注意:直接调用run()方法并不会启动一个新线程,它和调用一个普通的java方法没有什么区别。

因此,有两个方法可以实现自己的线程:

方法1:自己的类extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。例如:

public class MyThread extends Thread {
    public run() {
        System.out.println("MyThread.run()");
    }
}

在合适的地方启动线程:new MyThread().start();

方法2:如果自己的类已经extends另一个类,就无法直接extends Thread,此时,必须实现一个Runnable接口:

public class MyThread extends OtherClass implements Runnable {
    public run() {
        System.out.println("MyThread.run()");
    }
}

为了启动MyThread,需要首先实例化一个Thread,并传入自己的MyThread实例:

MyThread myt = new MyThread();
Thread t = new Thread(myt);
t.start();

事实上,当传入一个Runnable target参数给Thread后,Thread的run()方法就会调用target.run(),参考JDK源代码:

public void run() {
    if (target != null) {
        target.run();
    }
}

线程还有一些Name, ThreadGroup, isDaemon等设置,由于和线程设计模式关联很少,这里就不多说了。
分享到:
评论

相关推荐

    java线程69433.doc

    【Java线程创建与启动】 创建Java线程主要有两种方式: 1. 扩展`java.lang.Thread`类:自定义Thread类,覆盖`run()`方法。例如: ```java class MyThread extends Thread { public void run() { // 代码执行逻辑 ...

    java线程的创建于启动

    ### Java线程的创建与启动详解 #### 一、创建线程的方式 在Java中创建线程有两种主要方式:一种是通过继承`java.lang.Thread`类来创建;另一种则是通过实现`java.lang.Runnable`接口。 ##### 1. 继承`Thread`类 ...

    Java线程创建与管理:深入理解与实践指南

    ### Java线程创建与管理:深入理解与实践指南 #### 引言 多线程作为Java程序设计中的重要概念之一,使开发者能够构建并行执行的任务,进而提高程序的效率和响应速度。Java语言提供了丰富的工具和技术来支持线程的...

    JAVA 线程中启动线程

    在Java编程语言中,线程是程序执行的基本单元,它允许程序并发地执行多个任务。在多线程环境中,程序的...在编写`test`这样的示例时,你可以创建并启动线程,测试各种线程控制和同步方法,从而加深对Java线程的理解。

    java线程定时启动

    ### Java线程定时启动知识点详解 #### 一、概述 在Java编程中,有时我们需要让某个任务或操作在特定的时间点或每隔一段时间自动执行一次。这通常被称为“定时任务”。Java标准库提供了几种不同的方式来实现定时...

    java线程与并发编程实践

    Java线程与并发编程实践是Java开发者必备的技能之一,特别是在多核处理器和高并发应用环境中,有效地管理和利用线程能极大地提升程序的性能。本书《java线程与并发实践编程》由Jeff Friesen撰写,2017年2月出版,...

    Java线程:创建与启动

    理解并熟练掌握Java线程的创建和启动是进行并发编程的基础,也是构建高效、可扩展的Java应用的关键。正确处理线程间的通信和同步问题,能有效避免死锁、活锁和饥饿等问题,提高程序的性能和可靠性。

    Java多线程编程总结

    Java线程:创建与启动 Java线程:线程栈模型与线程的变量 Java线程:线程状态的转换 Java线程:线程的同步与锁 Java线程:线程的交互 Java线程:线程的调度-休眠 Java线程:线程的调度-优先级 Java线程:线程的...

    Java使用Callable和Future创建线程操作示例

    此外,Java中的线程创建方式还包括使用Runnable接口、Thread类、Executor框架等。不同的线程创建方式都有其优缺,需要根据实际情况选择合适的线程创建方式。 本文主要介绍了Java使用Callable和Future创建线程操作的...

    Java线程创建的四种方式

    Java线程是并发编程的基础,它允许程序同时执行多个任务,极大地提高了程序的效率和响应速度。在Java中,有四种主要的线程创建方法,它们各有特点,适应不同的应用场景。接下来,我们将深入探讨这四种方式及其使用...

    Java线程状态流转图

    Java线程状态流转图中,以下方法与线程状态转换相关: * Object.wait():使线程从RUNNABLE状态转换到WAITING状态。 * Object.notify():使线程从WAITING状态转换到RUNNABLE状态。 * Object.notifyAll():使多个线程...

    java线程.rar

    5. **线程池**:通过`ExecutorService`和`ThreadPoolExecutor`,可以有效地管理和控制线程,避免大量线程创建和销毁带来的性能开销。 6. **守护线程(Daemon)**:不会阻止程序的正常退出,如后台日志记录线程。 7...

    Java线程.ppt

    学习Java线程,理解其创建、状态转换、调度和控制,以及如何处理线程间的互斥和同步,对于开发高效、稳定的并发程序至关重要。通过深入研究这些概念,开发者能够编写出更符合现代计算需求的高质量软件。

    Java线程详解大全

    Java线程是并发编程的核心部分,它允许程序在同一时间执行多个独立的任务,从而提高系统效率和响应速度。本文将深入探讨Java线程的概念、生命周期、实现方式以及相关的同步机制。 首先,理解线程的基本概念至关重要...

    Java线程使用教程

    Java线程是Java编程语言中的一个核心概念,它允许程序同时执行多个任务,极大地提高了程序的并发性和效率。本教程将深入探讨Java线程的使用,帮助开发者掌握这一关键技术。 一、线程基础 1. **线程的概念**:线程...

    在Java中创建线程有两种方法

    在`main`方法中,你可以创建这个线程类的实例,并调用`start()`方法启动线程: ```java MyThread myThread = new MyThread(); myThread.start(); ``` 这种方式适用于任务与线程类紧密关联的情况,因为线程类...

    java线程深入解析

    本文将深入解析Java线程的相关知识点,包括线程的定义、创建、状态管理、线程同步和安全问题。 1. **线程定义** 在Java中,线程是进程中的单一顺序控制流,是程序执行的基本单元。线程在进程的上下文中运行,共享...

    Java线程模块Java线程之秒表

    Java线程模块对于理解和实现多任务并行处理至关重要,尤其是在开发高效的、响应迅速的应用程序时。本节将深入探讨Java线程中的“秒表”概念,这是一种用于度量时间间隔的实用工具,常用于性能测试和调试。 首先,让...

    Java线程(第三版)

    《Java线程(第三版)》是一本深入探讨Java线程技术的专业书籍,旨在帮助开发者理解和掌握Java平台上的多线程编程。Java线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而充分利用系统资源,提高程序的...

    java线程实战手册

    2. **线程的启动与生命周期**:通过调用start()方法启动线程,线程将经历新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和终止(Terminated)等几个状态。 3. **线程同步机制**:Java提供了多种...

Global site tag (gtag.js) - Google Analytics