執行緒第一章

2021-08-02 09:25:41 字數 2459 閱讀 2032

使用多執行緒的情況:

乙個程式同時執行多個任務;

單執行緒可以完成,單多執行緒效率高。

併發原理

執行緒排程將時間劃分為很多時間片段,盡可能均勻分配給每乙個執行緒,獲取時間片段的執行緒將被cpu執行,其餘執行緒全部等待。微觀上是「走走停停」,巨集觀上都在執行,這種現象叫「併發」。

執行緒排程

給執行緒分配時間片段

執行緒的生命週期(摘自:

執行緒是乙個動態執行的過程,它也有乙個從產生到死亡的過程。

生命週期的五種狀態

新建(new thread)

當建立thread類的乙個例項(物件)時,此執行緒進入新建狀態(未被啟動)。

例如:thread t1=new thread();

就緒(runnable)相當於註冊

執行緒已經被啟動,正在等待被分配給cpu時間片,也就是說此時執行緒正在就緒佇列中排隊等候得到cpu資源。例如:t1.start();

執行(running)

執行緒獲得cpu資源正在執行任務(run()方法),此時除非此執行緒自動放棄cpu資源或者有優先順序更高的執行緒進入,執行緒將一直執行到結束。

死亡(dead)將被gc**

當執行緒執行完畢或被其它執行緒殺死,執行緒就進入死亡狀態,這時執行緒不可能再進入就緒狀態等待執行。

自然終止:正常執行run()方法後終止

異常終止:呼叫stop()方法讓乙個執行緒終止執行

堵塞(blocked)不能執行,不能回到就緒狀態

由於某種原因導致正在執行的執行緒讓出cpu並暫停自己的執行,即進入堵塞狀態。

正在睡眠:用sleep(long t) 方法可使執行緒進入睡眠方式。乙個睡眠著的執行緒在指定的時間過去可進入就緒狀態。

正在等待:呼叫wait()方法。(呼叫motify()方法回到就緒狀態)

被另乙個執行緒所阻塞:呼叫suspend()方法。(呼叫resume()方法恢復)

建立執行緒(new thread)1

**同步執行:有先後順序的執行方式

**非同步執行:各幹各的,多個執行緒併發執行的效果。

//**示例

public

class

createathread

}//過於侷限,重用性太差

class

mythread1

extends

thread

}}class

mythread2

extends

thread}}

解耦與耦合耦合:強制繫結。

解耦:接觸耦合關係。

執行緒就是執行緒,任務就是任務。

spring框架

程式鬆散繫結

建立執行緒(new thread)2

package day01;

/** * 介紹建立執行緒的第二種方法:定義執行緒體runnable

* @author administrator

* */

public

class

createdathread_02

}//靈活,重用性好,需要幹的活直接實現介面

class

myrunnable1

implements

runnable

}}class

myrunnable2

implements

runnable}}

溫故知新:匿名內部類故名思義,就是沒有名字的內部類。

只能(需)使用一次。用於簡化**。

建立執行緒(new thread)3

package day01;

/**使用匿名內部類的形式建立執行緒

*/public

class

createdthread_03 }};

//2runnable runn = new runnable()}};

thread t2 = new thread(runn);

t1.start();

t2.start();}}

python第一章筆記 第一章 基礎

參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...

第一章 Java多執行緒技能

乙個程序正在執行時至少會有1個執行緒正在執行。public class test 輸出結果 main 分析 乙個名稱叫做main的執行緒在執行main 方法中的 public class mythread extends thread 分析 通過在run方法前加入synchronized關鍵字,使多...

Java多執行緒程式設計(第一章)

實現方式 1.繼承thread類 2.實現runnable介面,作為thread建構函式的target物件 thread.currentthread 用來獲取呼叫這段 的執行緒,即正在執行中的執行緒 isalive 用來判斷當前執行緒是否處於runnable狀態,也就是處於就緒和執行中的執行緒。sl...