多线程的创建与启动
1.继承Thread类
public class Thread1 extends Thread{ @Override public void run() {
//run()方法体中的代码就是子线程要执行的任务
for (int i = 0; i <1000 ; i++) { System.out.println("Thread1--"+i); } } }
public class Main { public static void main(String[] args) { Thread1 t=new Thread1(); t.start();
/*
调用线程的 start()方法来启动线程, 启动线程的实质就是请求 JVM 运行相应的
线程,这个线程具体在什么时候运行由线程调度器(Scheduler)决定
注意:
start()方法调用结束并不意味着子线程开始运行
新开启的线程会执行 run()方法
如果开启了多个线程,start()调用的顺序并不一定就是线程启动的顺序
多线程运行结果与代码执行顺序或调用顺序无关
*/
for (int i = 0; i <1000 ; i++) { System.out.println("Main--"+i); } } }
2.定义类实现 Runnable 接口(当线程类已经有父类了,就不能用继承 Thread 类的形式创建线程,可以使用实现 Runnable接口的形式)
public class MyRunnable implements Runnable{ @Override public void run() { for (int i = 0; i < 1000; i++) { System.out.println("Runnable--"+i); } } }
public class Main { public static void main(String[] args) { Thread t=new Thread(new MyRunnable()); t.start(); for (int i = 0; i < 1000; i++) { System.out.println("Main--"+i); } //有时调用 Thread(Runnable)构造方法时,实参也会传递匿名内部类对象 Thread t1=new Thread(new Runnable(){ @Override public void run() { for (int i = 0; i < 1000; i++) { System.out.println("匿名内部类Runnable--"+i); } } }); t1.start(); } }

浙公网安备 33010602011771号