【Java】多线程编程

it2026-01-05  8

1. 进程和线程基础

请查看廖雪峰老师的教程: https://www.liaoxuefeng.com/wiki/1252599548343744/1304521607217185

2. 创建新线程

Java语言内置了多线程支持。当Java程序启动的时候,实际上是启动了一个JVM进程,然后,JVM启动主线程来执行main()方法。在main()方法中,我们又可以启动其他线程。

要创建一个新线程非常容易,我们需要实例化一个Thread实例,然后调用它的start()方法:

public class Main { public static void main(String[] args){ Thread thread = new Thread(); thread.start(); } }

但是这个线程启动后实际上什么也不做就立刻结束了。我们希望新线程能执行指定的代码,有以下几种方法:

2.1 从Thread派生一个自定义类,然后覆写run()方法

public class Main { public static void main(String[] args) { Thread t = new MyThread(); t.start(); // 启动新线程 } } class MyThread extends Thread { @Override public void run() { System.out.println("start new thread!"); } }

执行上述代码,注意到start()方法会在内部自动调用实例的run()方法。

2.2 创建Thread实例时,传入一个Runnable实例

public class Main { public static void main(String[] args) { Thread thread = new Thread(new MyRunable()); thread.start(); } } class MyRunable implements Runnable{ @Override public void run() { System.out.println("start new thread!"); } }

总结

写到这里,我们可以总结一下Java创建线程的方式有两种:

(1) 自定义线程类(MyThread)使其继承Thread类; 重写父类中的run方法,用start方法启动线程;

(2)自定义线程类(MyRunable)使其实现Runable接口; 实现接口中的run方法;用new Thread(Runnable target).start()方法来启动;

当然,还有一种方式:【实现Callable接口通过FutureTask包装器来创建Thread线程】,这里暂时先不提。

最新回复(0)