深度解析執行緒工作原理

2022-08-16 21:39:17 字數 1333 閱讀 6879

1, 執行緒的概念

乙個程式中的方法有幾條執行路徑, 就有幾個執行緒

2, 執行緒的建立

兩種方式:

1, 繼承thread

class testthread extends thread

2, 實現runnable介面, 然後作為引數傳入到thread類的構造方法中

class testthread implements runnable

執行緒的啟動:

呼叫執行緒類中的start()方法, 不能直接呼叫run()方法, 直接呼叫run()方法那叫方法呼叫, 不是啟動執行緒

3, 執行緒常用方法

isalive()

判斷執行緒是否還活著, 呼叫start()之前和終止之後都是死的, 其他的都是活的

interrupt()

停止執行緒

getpriority()

setpriority(int i)

設定優先順序, 優先順序的概念: 誰的優先順序高, 誰執行的時間就多

thread裡面的預設優先順序:

thread.min_priority = 1

thread.max_priority = 10

thread.norm_priority = 5

thread.sleep(1000);   將程式暫定一會

join() 合併執行緒

yield() 讓出cpu執行其他執行緒

4, 執行緒同步

synchronized

執行緒同步解析:

package

com.maya.sync.deadlock;

public

class testpractise implements

runnable

catch

(interruptedexception e)

system.out.println("m1: " +b);

}public

synchronized

void

m2()

catch

(interruptedexception e)

b = 2000;

}public

void

run()

public

static

void

main(string args)

/* 先執行m2,再執行m1

* 一條記錄, 加鎖是應該加在改的方法上還是讀的方法上

*/}

spring mvc 原理深度解析

概要 spring mvc 設計思想與體系結構組成 mvc 執行流程解析 註解配置 jsp 執行過程回顧 spring mvc執行流程解析 mvc 體系結構 流程說明 請求servlet 處理業務邏輯 設定業務model forward jsp servlet jsp servlet 解析封裝htm...

深度解析mysql登入原理

使用mysql資料庫的第一步必然是建立連線登入,然後在上面執行sql命令。無論是通過mysql的客戶端,還是通過c api,jdbc標準介面連線資料庫,這個過程一定少不了。今天我們聊一聊mysql登陸具體過程,裡面會涉及client與server的互動,並通過tcpdump抓包給大家展現這一過程。t...

深度解析 Condition實現原理

condition指的就是conditionobject,是aqs的乙個內部類。conditionobject的原理是基於aqs的node內部類維護了兩個佇列,乙個等待佇列,乙個同步佇列 乙個是單向佇列,乙個是雙向佇列。如果某個執行緒呼叫了await方法之後,就會使當前執行緒進入到等待狀態,原理就是...