Java多线程创建
创建Java多线程有两种方式:
- java.lang.Thread
– 线程继承Thread类,实现run方法。 - java.lang.Runnable接口
– 线程实现Runnable接口,实现run方法。
public class Thread1 extends Thread{
public void run() {
System.out.println("hello");
}
public static void main(String[] a) {
new Thread1().start();
}
}
public class Thread2 implements Runnable{
public void run() {
System.out.println("hello");
}
public static void main(String[] a) {
new Thread(new Thread2()).start();
}
}
创建Java多线程的两种方式的对比:
- Thread vs Runnable
– Thread占据了父类的名额,不如Runnable方便
– Thread 类实现Runnable
– Runnable启动时需要Thread类的支持
– Runnable 更容易实现多线程中资源共享
结论:
建议实现Runnable接口来完成多线程
Java多线程的启动
- start方法,会自动以新进程调用run方法
- 直接调用run方法,将变成串行执行
- 同一个线程,多次start会报错,只执行第一次start方法
- 多个线程启动,其启动的先后顺序是随机的
- 线程无需关闭,只要其run方法执行结束后,自动关闭
- main函数(线程)可能早于新线程结束,整个程序并不终止,整个程序终止是等所有的线程都终止(包括main函数线程)。