創建線程的兩種方式:
繼承Thread類和實現Runnable接口。
創建線程通常通過實現Runnable接口來實現,可以避免單繼承的侷限性。
1.繼承Thread類;
/**
* 創建線程:繼承Thread類
* 1.定義CreateThreadExtendThread類繼承Thread類,並重寫run()方法;
* 2.創建CreateThreadExtendThread類的實例,即創建了新的線程對象;
* 3.調用新的線程對象的start()方法來啓動該線程。(new CreateThreadExtendThread().start();)
* 注:Thread.currentThread().getName()方法可以獲取當前線程的名稱。
*/
public class CreateThreadExtendThread extends Thread{
//重寫run方法,run方法的方法體就是執行體
@Override
public void run() {
//super.run();
for (int i = 0; i < 10; i++) {
LogUtil.e("創建線程:繼承Thread類", getName() + "----" + i);
}
}
}
2.實現Runnable接口;
/**
* 創建線程:實現Runnable接口
* 1.定義CreateThreadImplementsRunnable類實現Runnable接口,並重寫run()方法;
* 2.創建CreateThreadImplementsRunnable類的實例,並依此實例作爲Thread的target來創建Thread對象,
* 該Thread對象是新的線程對象;
* 3.調用新的線程對象的start()方法來啓動該線程。
* (CreateThreadImplementsRunnable createThreadImplementsRunnable = new CreateThreadImplementsRunnable();
new Thread(createThreadImplementsRunnable).start();)
* 注:Thread.currentThread().getName()方法可以獲取當前線程的名稱。
*/
public class CreateThreadImplementsRunnable implements Runnable {
//重寫run方法,run方法的方法體就是執行體
@Override
public void run() {
for (int i = 0; i < 10; i++) {
LogUtil.e("創建線程:實現Runnable接口", Thread.currentThread().getName() + "----" + i);
}
}
}
3.調用;
new CreateThreadExtendThread().start();
CreateThreadImplementsRunnable createThreadImplementsRunnable = new CreateThreadImplementsRunnable();
new Thread(createThreadImplementsRunnable).start();