執行緒學習筆記

2021-09-26 23:55:27 字數 2857 閱讀 2906

/**

* 自定義執行緒類

* @author

* @version 1.0 2023年9月9日

*/public class mythread extends thread

/*** 重寫run方法

*/@override

public void run() }}

/** * 測試類

* @author

* @version 1.0 2023年9月9日

*/public class test

}

/**

* 執行緒任務類

* @author sx

* @version 1.0 2023年9月9日

*/public class myrunnable implements runnable

}}

public static void main(string args)

//測試類一樣

給執行緒取名常用方式:

繼承thread類方法 vs 實現runnable介面方式實現

執行緒的優先順序:優先順序越高的執行緒搶占資源的概率越高,優先順序低的執行緒搶占資源的概率越低。優先順序高的執行緒不一定搶得到cpu時間片,優先順序低的執行緒也不一定搶不到cpu時間片。設定執行緒優先順序實現方式:要在啟動執行緒之前設定執行緒的優先順序:執行緒物件.setpriority(int newpriority):

mythread t1=new mythread();

mythread t2=new mythread();

//設定執行緒的優先順序

t1.setpriority(thread.max_priority);

t2.setpriority(thread.min_priority);

//啟動子執行緒

t1.start();

t2.start();

public static void main(string args) throws interruptedexception ;

//生成隨機數,作為抽取學員姓名的索引

int r=(int)(math.random()*names.length);

for (int i = 3; i >=1; i--)

system.out.println("抽中的學員為:"+names[r]);

}

/**

* 執行緒任務類

* @author sx

* @version 1.0 2023年9月9日

*/ public class myrunnable implements runnable

} }

}public static void main(string args)

public static void main(string args) throws interruptedexception 

} }

/**

* 執行緒類

* @author

* @version 1.0 2023年9月9日

*/public class mythread2 extends thread

/*** 將執行緒物件作為引數傳過來構造方法

* @param t

*/public mythread2(mythread2 t)

/*** 重寫父類的任務方法

*/@override

public void run() catch (interruptedexception e)

}} }

}

public static void main(string args) throws interruptedexception

執行緒中斷:

//interrupt()中斷執行緒。

//interrupted() 測試當前執行緒是否已經中斷

/*** 執行緒類

* @author

* @version 1.0 2023年9月9日

*/public class mythread1 extends thread

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

} }}

public static void main(string args) throws interruptedexception

} }

public class mythread2 extends thread

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

}} }

public static void main(string args) throws interruptedexception

} }

執行緒的生命週期

新建狀態:當乙個執行緒物件被new出來後,它就處於新建狀態.

就緒狀態:當乙個執行緒呼叫start()方法後或者阻塞狀態的執行緒解除阻塞時,它就處於就緒狀態.

執行狀態:當乙個就緒狀態的執行緒搶到cpu時間片時,執行run()時間時,它就處於執行狀態.

阻塞狀態:當乙個執行緒呼叫sleep(時間)或wait()時,它就處於阻塞狀態.

死亡狀態:當乙個執行緒呼叫stop()方法時或run()方法執行結束後,執行緒即處於死亡狀態。處於 死亡狀態的執行緒不具有繼續執行的能力。

執行緒學習筆記

保證多執行緒安全的方式 鎖線程池程序 執行緒 執行緒又分為守護執行緒和使用者執行緒 不常用,了解即可,面試可能會問 1.編寫類實現callable介面 實現call方法 class implements callable 2.建立futuretask物件 並傳入第一步編寫的callable類物件 f...

多執行緒學習筆記 執行緒

thread類 常用屬性 currentthread 獲取當前正在執行的執行緒 isalive 指示當前執行緒的執行狀態 isbackground 指示是否為後台執行緒 isthreadpoolthread 指示是否屬於託管執行緒池 managedthreadid 獲取執行緒識別符號 name 獲取...

多執行緒學習筆記

多執行緒的相關概念 什麼是程序?當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。什麼是執行緒?執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的...