執行緒常見方法

2021-10-19 11:00:33 字數 2482 閱讀 6550

sleep:當前執行緒暫停

join:將該執行緒加入到當前執行緒中,預設是main

setpriority:設定優先順序

yield:臨時暫停

setdaemon:守護執行緒

讓該執行緒每執行一次就暫停一秒

package com.thread.thread4;

public class testthread catch(interruptedexception e)

system.out.printf("已經完了lol %d 秒 %n", seconds++); //執行一次就+1}}

};t1.start(); //啟動執行緒}}

從結果可以看出,每次執行耗時一秒

兩個執行緒在乙個主線程中同時執行,它的順序是亂的

使用a.join(),那麼就只有等a執行緒全部執行完了之後,才會執行其他執行緒

package com.thread.thread5;

import com.thread.hero;

public class testthread }};

t1.start();

//**執行到這裡 一直是main執行緒在執行

trycatch (interruptedexception e)

thread t2 = new thread()}};

//會觀察到t1執行緒執行完成之後 才執行的t2執行緒

t2.start();}}

從效果看出,的確t1執行完全才輪到t2上

這個優先順序只能說是搶占cpu資源的概率變大了,其他執行緒來搗亂的機率還是有的

package com.thread.thread6;

import com.thread.hero;

public class testthread }};

thread t2 = new thread() }};

//這個優先順序 只能說更大的概率 執行緒能夠搶占到cpu資源 還是有部分的執行緒會搶占執行

// t1.setpriority(thread.max_priority); //給執行緒設定最大優先級別

t1.setpriority(thread.min_priority); //最小優先順序

t1.start();

t2.start();}}

看到t1的優先順序設定到最低,但是在t2執行的時候還是會去搗亂

執行緒2進行暫停操作

package com.thread.thread7;

import com.thread.hero;

public class testthread }};

thread t2 = new thread() }};

t1.setpriority(5); //設定優先順序

t2.setpriority(5);

t1.start(); //啟動執行緒

t2.start();}}

在這裡我把t2盲憎給暫停了,但是t1的時候還是會出現t2的,說明暫停只是一種大概率的暫停,和優先順序類似

守護程序就是像日誌一樣,我們這個程式執行結束,日誌自然就不再記錄了。伴隨著整個程序的消亡而消亡。或者說守護的東西消失了,自己的使命也就完成了。

package com.thread.thread8;

public class testthread catch (interruptedexception e)

system.out.printf("已經完了lol %d 秒 %n", seconds++);}}

};t1.setdaemon(true); //守護程序開啟 這裡就是相當於main主線程的守護程序 main執行成功 t1就死翹翹了

//守護程序 從字面意思就是守護 它守護的目標死亡 他的命運就結束了

t1.start();}}

執行一片空白,這裡是將t1執行緒作為守護執行緒,那麼main主線程完成後,自己就死掉了。

Java Collection常見方法

collection的常見方法 1 新增 boolean add object obj 新增單個物件 boolean addall collection coll 新增集合 2 刪除 boolean remove object obj 刪除單個物件 boolean removeall collect...

Java Set常見方法

set 元素不能重複,無序。set介面中的方法和collection一致 hashset 內部資料結構是雜湊表,是不同步的。雜湊表確定元素是否相同 1 判斷的是兩個元素的雜湊值是否相同,如果相同再判斷兩個物件的內容是否相同。2 判斷雜湊值相同,其實判斷的是物件的hashcode的方法,判斷內容相同,...

Ruby常見方法

1.capitalize方法 該方法是字串類string的乙個方法,對所有字串都適用。它的作用是將呼叫該方法的字串的首字母改為大寫。舉例如下 s ruby s.capitalize ruby 又如 def say goodnight name result good night,capitalize...