兩種方式:繼承 Thread 或實現 Runnable,重寫 run()。
// 繼承 Thread
public class MyThread extends Thread {
private String name;
public MyThread(String name) { this.name = name; }
@Override public void run() {
for (int i=0; i<1000; i++) System.out.println(name + "------" + i);
}
}
// 實現 Runnable
public class MyRunnable implements Runnable {
private String name;
public MyRunnable(String name) { this.name = name; }
@Override public void run() {
for (int i=0; i<1000; i++) System.out.println(name + "----" + i);
}
}
// 啟動
public class ThreadDemo {
public static void main(String[] args) {
new MyThread("t1").start();
new MyThread("t2").start();
new Thread(new MyRunnable("r1")).start();
new Thread(new MyRunnable("r2")).start();
}
}
start(),等待 CPU 調度。run()。sleep、wait、I/O)。currentThread():獲取當前線程對象。getName():獲取線程名。isAlive():判斷是否存活。join():強制執行,調用線程等待該線程結束。sleep(ms):休眠指定毫秒。yield():禮讓 CPU,重新參與調度。