`
mickey_hou
  • 浏览: 246184 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java线程:创建与启动

阅读更多
一、定义线程

1、扩展java.lang.Thread类。

此类中有个run()方法,应该注意其用法:

public void run()

    如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
    
    Thread 的子类应该重写该方法。

扩展Thread类实现的多线程例子

2、实现java.lang.Runnable接口。

void run()

    使用实现接口 Runnable 的对象创建一个线程时,启动该线程将导致在独立执行的线程中调用对象的 run 方法。
    
    方法 run 的常规协定是,它可能执行任何所需的操作。

实现Runnable接口的多线程例子
/**
* 实现Runnable接口的类
*
* @author leizhimin 2008-9-13 18:12:10
*/
public class DoSomething implements Runnable {
    private String name;

    public DoSomething(String name) {
        this.name = name;
    }

    public void run() {
        for (int i = 0; i < 5; i++) {
            System.out.println(name + ": " + i);
        }
    }
}

二、实例化线程

1、如果是扩展java.lang.Thread类的线程,则直接new即可。

2、如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:
Thread(Runnable target)
Thread(Runnable target, String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)

三、启动线程

在线程的Thread对象上调用start()方法,而不是run()或者别的方法。

在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。

在调用start()方法之后:发生了一系列复杂的事情
启动新的执行线程(具有新的调用栈);
该线程从新状态转移到可运行状态;
当该线程获得机会执行时,其目标run()方法将运行。

注意:对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称(和签名)。因此,在Runnable上或者Thread上调用run方法是合法的。但并不启动新的线程。
分享到:
评论

相关推荐

    Java多线程编程总结

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

    java线程详解

    Java线程:创建与启动 Java线程:线程状态的转换 Java线程:线程的同步与锁 一、同步问题提出 二、同步和锁定 三、静态方法同步 四、如果线程不能不能获得锁会怎么样 五、何时需要同步 六、线程安全类 七、...

    java多线程编程总结

    #### 二、Java线程:创建与启动 - **定义线程** 1. 扩展 `java.lang.Thread` 类。此类中有一个 `run()` 方法,该方法需要特别注意其使用方式: ```java public void run() ``` 如果线程是使用独立的 `Runnable...

    Java多线程

    #### 二、Java线程:创建与启动 **1. 定义线程** Java中定义线程有两种主要方法: - **扩展`java.lang.Thread`类**:通过重写`run()`方法来定义线程的行为。 - **实现`java.lang.Runnable`接口**:创建一个实现了...

    Java线程:线程状态的转换

    ### Java线程:线程状态的转换 #### 一、线程状态及其转换 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程中的多个线程共享同一份内存空间,使得线程间的通信...

    JAVA多线程总结

    **二、Java线程:创建与启动** 1. **定义线程**: - 继承Thread类并重写run()方法。 - 实现Runnable接口,并在run()方法中定义线程行为。 2. **实例化线程**: - 对于Thread类的子类,直接new一个实例。 - ...

    JAVA多线程

    #### Java线程:创建与启动 在Java中创建线程有两种基本方法: 1. **继承Thread类**:创建一个`Thread`类的子类,并重写`run()`方法,该方法中包含线程的执行逻辑。然后通过调用子类对象的`start()`方法来启动线程...

    Java线程:线程状态的转换.pdf

    Java线程的状态主要包括以下五种: 1. 新状态(New):当通过`new Thread()`创建了一个线程对象,但还未调用`start()`方法时,线程处于新状态。此时,线程尚未启动,不具备执行的能力。 2. 可运行状态(Runnable)...

    Java线程:线程状态的转换[参考].pdf

    Java线程的状态转换是理解多线程编程的关键概念。线程在生命周期中经历五个主要状态:新状态、可运行状态、运行状态、等待/阻塞状态以及死亡态。 1. **新状态**:当通过`new Thread()`创建一个新的线程对象,但尚未...

    Java_多线程编程线程:大总结

    #### 三、Java线程的创建与启动 Java提供了两种主要的方式创建线程: 1. **继承`java.lang.Thread`类**:重写`run()`方法,实现线程的具体逻辑。 2. **实现`java.lang.Runnable`接口**:创建一个实现了`Runnable`...

    java线程的创建于启动

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

    Java多线程机制(讲述java里面与多线程有关的函数)

    掌握Java的多线程机制对于编写高效、并发友好的应用程序至关重要,它涉及到线程的创建、管理、同步以及线程间的通信等多个方面。理解并熟练运用这些概念和方法,可以帮助开发者构建出更稳定、高效的系统。

    JAVA 线程中启动线程

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

    java线程实例 各种小Demo

    Java线程是多任务编程的重要概念,它允许程序同时执行多个独立的任务,从而提高系统效率和响应速度。在Java中,线程可以分为用户线程和守护线程,前者是程序运行的基础,而后者是在所有用户线程结束时才终止的后台...

    java线程与并发编程实践

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

    Java多线程运算集合

    #### 三、Java线程栈模型与线程的变量 - **线程栈**: - 每个线程都有自己的调用栈,用于保存线程执行过程中所需的数据和局部变量。 - 调用栈由一系列栈帧组成,每个栈帧对应一个方法的调用。 - **线程变量**: ...

Global site tag (gtag.js) - Google Analytics