什么是線程?
首先講一下程序、進程和線程的區別:
程序:指令集,靜態的概念:
進程:操作系統 調度程序, 動態的概念。每個進程都有獨立的代碼和數據空間(進程上下文),進程間的切換會有較大的開銷,一個進程包含1--n個線程。
線程:在進程內多條執行路徑,同一類線程共享代碼和數據空間,每個線程有獨立的運行棧和程序計數器(PC),線程切換開銷小。
線程狀態
線程和進程一樣分為五個階段:創建、就緒、運行、阻塞、終止。
多進程、多線程
多進程是指操作系統能同時運行多個任務(程序)。
多線程是指在同一程序中有多個順序流在執行。
Java實現多線程的方法
在java中要想實現多線程,有三種手段,一種是繼承Thread類,一種是實現Runable接口,另外一種是實現Callable接口。
Java實現演示
繼承Thread類
1、創建多線程繼承Thread? +重寫run(線程體)
2、使用線程:創建子類對象+對象.start()線程啟動
以上是通過繼承Thread類實現多線程的方法,注意,線程停止方法最好自己實現。后續會有相關演示
通過實現Runnable接口實現多繼承(靜態代理)
靜態代理設計模式:
1、真實角色
2、代理角色:持有真實角色的引用
3、二者 實現相同的接口
靜態代理實現演示:
假如你要結婚,整個婚禮是交給婚慶公司的代理的,但是真正的結婚對象是你,你知道知道你要結婚,但是結婚需要準備什么都由婚慶公司代理完成。
以上是靜態代理的簡單演示,通過代理,很多事情都不用自己親力親為,交給婚慶公司非常省事,而在開發中也非常方便。
繼承Runnable接口實現多線程:
二、實現Runnable+run()
啟動:使用靜態代理
1、創建真實角色
2、創建代理角色Thread+引用
3、代理角色.start()
以上是通過Runnable接口實現多線程方法
推薦使用接口:
1、避免單繼承局限性
2、便于共享資源
通過實現Callable接口
以上是通過實現Callable接口實現多線程的演示
多線程最基礎的實現就差不多了,以后會更新多線程進一步的使用。
由于簡書粘貼代碼會丟了格式,弄得很難看,所以直接截圖沒有貼代碼....~。