欢迎访问宙启技术站
智能推送

Java中的线程函数:创建、启动和停止线程。

发布时间:2023-07-04 15:57:21

Java中的线程函数主要包括创建、启动和停止线程的方法。下面将详细介绍这些方法。

1. 创建线程:

在Java中,创建线程有两种方式:继承Thread类和实现Runnable接口。

1.1 继承Thread类:

可以通过继承Thread类来创建一个线程类,然后重写run()方法,将需要多线程执行的代码放到run()方法中。

class MyThread extends Thread {
  public void run() {
    // 执行需要多线程执行的代码
  }
}

然后,可以通过实例化MyThread类来创建线程对象。

MyThread thread = new MyThread();

1.2 实现Runnable接口:

也可以通过实现Runnable接口来创建线程类,实现Runnable接口需要重写run()方法,将需要多线程执行的代码放到run()方法中。

class MyRunnable implements Runnable {
  public void run() {
    // 执行需要多线程执行的代码
  }
}

然后,可以通过实例化MyRunnable类来创建线程对象。

MyRunnable runnable = new MyRunnable();

2. 启动线程:

通过调用线程对象的start()方法来启动线程。

thread.start();

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

注意,如果直接调用run()方法,那么线程并不会启动,而是会被当作普通的方法调用。

3. 停止线程:

在Java中,没有直接停止一个线程的方法,而是通过控制线程的执行状态来停止线程。

3.1 使用标志位:

可以通过设置一个标志位来控制线程的执行状态,当标志位达到某个条件时,线程会退出run()方法,从而停止线程的执行。

class MyThread extends Thread {
  private boolean flag = true;
  
  public void run() {
    while (flag) {
      // 执行需要多线程执行的代码
    }
  }
  
  public void stopThread() {
    flag = false;
  }
}

然后,通过调用stopThread()方法来停止线程。

thread.stopThread();

3.2 使用interrupt()方法:

可以通过调用interrupt()方法来停止线程执行。当调用interrupt()方法时,线程的中断状态会被设置为true,可以通过isInterrupted()方法来检查线程的中断状态,从而停止线程的执行。

class MyThread extends Thread {
  public void run() {
    while (!isInterrupted()) {
      // 执行需要多线程执行的代码
    }
  }
}

然后,通过调用interrupt()方法来停止线程。

thread.interrupt();

需要注意的是,interrupt()方法发送一个中断信号给线程,但不会立即停止线程的执行,而是让线程有机会在合适的地方进行响应。可以在run()方法中使用isInterrupted()方法来检查线程的中断状态,并在合适的地方退出循环,从而停止线程的执行。

通过上述方法,可以实现Java中的线程函数:创建、启动和停止线程。