当前位置:  首页>> 技术小册>> Java面试指南

Java中的线程介绍

Java中的线程(Thread)是程序中独立执行的最小单位,它可以并发执行不同的任务,从而提高程序的处理能力。线程可以在同一个进程中并发执行多个任务,这些任务可以共享进程的资源(例如内存空间),因此线程间的通信和数据共享也比较容易实现。Java中提供了丰富的线程API和机制,使得开发者可以方便地使用线程实现多线程编程。

Java中创建线程的常用方式有两种:

继承Thread类并重写run()方法

  1. public class MyThread extends Thread {
  2. @Override
  3. public void run() {
  4. // 执行线程的任务
  5. }
  6. }
  7. public class Main {
  8. public static void main(String[] args) {
  9. MyThread thread = new MyThread();
  10. thread.start();
  11. }
  12. }

实现Runnable接口并重写run()方法

  1. public class MyRunnable implements Runnable {
  2. @Override
  3. public void run() {
  4. // 执行线程的任务
  5. }
  6. }
  7. public class Main {
  8. public static void main(String[] args) {
  9. MyRunnable runnable = new MyRunnable();
  10. Thread thread = new Thread(runnable);
  11. thread.start();
  12. }
  13. }

在上面的代码示例中,MyThread和MyRunnable分别继承了Thread类和实现了Runnable接口,并在run()方法中实现了线程的具体任务。在主函数中,我们创建了一个MyThread对象或MyRunnable对象,并通过调用start()方法来启动线程。

在Java中,线程的状态包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED六种。当线程刚刚创建时,它的状态为NEW;当线程调用start()方法后,它的状态变为RUNNABLE;当线程在等待某个锁的时候,它的状态为BLOCKED;当线程在等待其他线程执行某个操作时,它的状态为WAITING;当线程在等待一段时间后自动恢复运行时,它的状态为TIMED_WAITING;当线程执行完任务或者因为异常退出时,它的状态为TERMINATED。

Java中的线程API还提供了许多有用的方法,例如:

  • sleep(long millis): 让当前线程睡眠指定的时间。
  • join(): 等待当前线程执行完毕。
  • interrupt(): 中断当前线程。
  • yield(): 提示调度器可以让其他线程执行。
  • wait(): 让当前线程进入等待状态,并释放当前对象的锁。
  • notify(): 唤醒一个正在等待当前对象的线程。