📜  创建线程 - Java (1)

📅  最后修改于: 2023-12-03 15:36:53.882000             🧑  作者: Mango

创建线程 - Java

在Java中,可以通过继承Thread类或实现Runnable接口来创建线程。

继承Thread类
步骤
  1. 定义一个继承自Thread类的新类。
  2. 重写run方法,在这个方法中实现线程的主体逻辑。
  3. 创建这个新类的一个实例,并调用它的start方法以启动线程。
代码示例
public class MyThread extends Thread {
    @Override
    public void run() {
        // 线程主体逻辑
        System.out.println("Hello, World!");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread t = new MyThread();
        t.start();
    }
}
实现Runnable接口
步骤
  1. 定义一个类实现Runnable接口。
  2. 实现run方法,在这个方法中实现线程的主体逻辑。
  3. 创建这个新类的一个实例,并将其作为Thread类的构造函数的参数来创建一个新的线程对象。
  4. 调用线程对象的start方法以启动线程。
代码示例
public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 线程主体逻辑
        System.out.println("Hello, World!");
    }
}

public class Main {
    public static void main(String[] args) {
        MyRunnable r = new MyRunnable();
        Thread t = new Thread(r);
        t.start();
    }
}
线程安全

在Java中,多个线程可以同时访问同一个对象。为了确保线程安全,需要考虑到线程访问对象时的互斥问题。可以通过以下方式来确保线程安全:

  1. 同步方法
  2. 同步块
同步方法

同步方法是一种特殊的方法,只能一个线程访问。在方法定义时,使用synchronized关键字前缀,如下:

public synchronized void synchronizedMethod() {
    // 同步方法主体逻辑
}
同步块

同步块是使用synchronized关键字来锁定的一段代码块,例如:

public void someMethod() {
    synchronized (this) {
        // 同步块主体逻辑
    }
}
总结

Java提供了两种方式来创建线程:继承Thread类和实现Runnable接口。为了确保线程安全,需要使用同步方法或同步块来进行互斥控制。