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
執行緒同步解析:
packagecom.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方法之後,就會使當前執行緒進入到等待狀態,原理就是...