Java 高階 多執行緒快速入門

2021-09-24 03:32:56 字數 2445 閱讀 8235

這世上有三樣東西是別人搶不走的:一是吃進胃裡的食物,二是藏在心中的夢想,三是讀進大腦的書

}

system.out.println("-----多執行緒建立開始-----");

thread thread = new thread(new runnable()

}});

thread.start();

system.out.println("-----多執行緒建立結束-----");

常用執行緒api方法

start()

啟動執行緒

currentthread()

獲取當前執行緒物件

getid()

獲取當前執行緒id thread-編號 該編號從0開始

getname()

獲取當前執行緒名稱

sleep(long mill)

休眠執行緒

stop()

停止執行緒,

常用執行緒建構函式

thread()

分配乙個新的 thread 物件

thread(string name)

分配乙個新的 thread物件,具有指定的 name正如其名。

thread(runable r)

分配乙個新的 thread物件

thread(runable r, string name)

分配乙個新的 thread物件

public class daemonthread  catch (exception e) 

system.out.println("我是子執行緒...");}}

});thread.setdaemon(true);

thread.start();

for (int i = 0; i < 10; i++) catch (exception e)

system.out.println("我是主線程");

}system.out.println("主線程執行完畢!");}}

為了確定執行緒在當前是否存活著(就是要麼是可執行的,要麼是被阻塞了),需要使用isalive方法。如果是可執行或被阻塞,這個方法返回true; 如果執行緒仍舊是new狀態且不是可執行的, 或者執行緒死亡了,則返回false.

建立乙個執行緒,子執行緒執行完畢後,主線程才能執行。

thread t1 = new thread(new runnable()  catch (exception e) 

system.out.println(thread.currentthread().getname() + "i:" + i);}}

});t1.start();

// 當在主線程當中執行到t1.join()方法時,就認為主線程應該把執行權讓給t1

t1.join();

for (int i = 0; i < 10; i++) catch (exception e)

system.out.println("main" + "i:" + i);

}

class prioritytthread implements runnable 

}}public class threaddemo4

}

thread.yield()方法的作用:暫停當前正在執行的執行緒,並執行其他執行緒。(可能沒有效果)

yield()讓當前正在執行的執行緒回到可執行狀態,以允許具有相同優先順序的其他執行緒獲得執行的機會。因此,使用yield()的目的是讓具有相同優先順序的執行緒之間能夠適當的輪換執行。但是,實際中無法保證yield()達到讓步的目的,因為,讓步的執行緒可能被執行緒排程程式再次選中。

結論:大多數情況下,yield()將導致執行緒從執行狀態轉到可執行狀態,但有可能沒有效果。

2.為什麼要用多執行緒?

3.多執行緒建立方式?

4.是繼承thread類好還是實現runnable介面好?

5.你在**用到了多執行緒?

Java 高階 多執行緒快速入門

這世上有三樣東西是別人搶不走的 一是吃進胃裡的食物,二是藏在心中的夢想,三是讀進大腦的書 class createthread extends thread publicclass threaddemo 複製 class createrunnable implements runnable publ...

java 多執行緒入門

繼承thread類 實現runnable介面 優先選擇 public class testthread1 class runner1 implements runnable public class testthread2 class runner1 implements runnable publ...

JAVA多執行緒入門

就緒 runnable 呼叫start 方法 執行 running 處於就緒狀態的執行緒獲得cpu,開始執行run 方法體 阻塞 blocked 執行緒呼叫sleep 方法主動放棄所占用的處理器資源 執行緒呼叫了乙個阻塞式的io方法 執行緒試圖獲得乙個同步監視器,但該監視器被其他執行緒所持有 執行緒...