Java线程是一种用于实现多任务处理的程序,它可以在一个单独的进程中并发执行多个任务。Java线程可以分为两类:用户线程和守护线程。用户线程可以被用于执行用户程序,而守护线程则可以用于执行系统程序。
线程的创建
Java线程可以通过实现Runnable接口来创建,也可以通过继承Thread类来创建。
实现Runnable接口创建线程
实现Runnable接口创建的线程可以共享同一个Thread对象,这样可以有效地减少资源消耗。使用Runnable接口创建线程的步骤如下:
- 定义实现Runnable接口的类,实现run()方法;
- 创建实现Runnable接口的实例;
- 创建Thread实例,并将Runnable接口实例作为参数传入;
- 调用Thread实例的start()方法启动线程;
public class MyRunnable implements Runnable { @Override public void run() { System.out.println("MyRunnable running"); } } public class Test { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); thread.start(); } }
继承Thread类创建线程
继承Thread类创建的线程不能共享同一个Thread对象,每个线程都有自己的Thread对象,这样可以更好地实现多任务处理。使用Thread类创建线程的步骤如下:
- 定义继承Thread类的类,重写run()方法;
- 创建Thread实例;
- 调用Thread实例的start()方法启动线程;
public class MyThread extends Thread { @Override public void run() { System.out.println("MyThread running"); } } public class Test { public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start(); } }
线程的休眠
在Java中,线程可以通过Thread类的sleep()方法来暂停执行,使线程休眠一段时间,sleep()方法可以接收一个long类型的参数,表示休眠的时间,单位是毫秒。
public class Test { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); thread.start(); try { thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }
线程的中断
Java线程可以通过Thread类的interrupt()方法来中断线程,当线程处于休眠或者等待状态时,interrupt()方法会使线程抛出InterruptedException异常,从而结束线程的执行。
public class Test { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); thread.start(); thread.interrupt(); } }