執行緒部分方法 同步鎖 單列模式

2021-10-10 21:40:20 字數 1900 閱讀 7252

執行緒部分方法:

join();//等待該執行緒死亡

yield();表示該執行緒願意產生一些當前使用的處理器

setpriority(1~10);優先順序,預設的是5

thread.currentthread()獲得當前正在執行的執行緒物件

getname();獲得名字

setname();修改名字

new thread(任務,「名字」);

sleep(毫秒);睡眠

同步鎖多執行緒操作的時候可能會出現安全問題,因為當乙個執行緒正在運算的過程中,另乙個執行緒也參與了,這時就用到了同步鎖。

同步鎖: synchronized

synchronized(唯一 鎖 共享物件)

private

int count =

100;

while

(count>0)

trycatch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+"在賣,剩餘"

+--count);}

}

lock鎖

private lock lock;

private

int cont =

100;

public

ticket

(lock lock)

while

(true

) thread.

sleep

(100);

system.out.

println

(thread.

currentthread()

.getname()

+"正在賣:"+(

--cont)

+"張票");

}catch

(interruptedexception e)

finally

}

synchronized和lock鎖的區別 :

1、synchronized會自動釋放鎖(a 執行緒執行完同步**會釋放鎖 ;b 執行緒執行過程中發生異常會釋放鎖),lock需在finally中手工釋放鎖(unlock()方法釋放鎖),否則容易造成執行緒死鎖

2、用synchronized關鍵字的兩個執行緒1和執行緒2,如果當前執行緒1獲得鎖,執行緒2執行緒等待。

如果執行緒1阻塞,執行緒2則會一直等待下去,而lock鎖就不一定會等待下去,如果嘗試獲取不到鎖,執行緒可以不用一直等待就結束了

3、synchronized放棄鎖只有兩種情況:①執行緒執行完了同步**塊的內容②發生異常;而lock不同,它可以設定超時時間,也就是說他可以在獲取鎖時便設定超時時間,如果在你設定的時間內它還沒有獲取到鎖,那麼它會放棄獲取鎖然後響應放棄操作

單列模式

單列模式:為了保證類物件的唯一(只能建立乙個例項)

1、物件的構建通過構造器執行來建立

2、不能在其他類中隨意建立物件

3、物件的建立在本類中提供乙個公共方法

單列集合的建立方式: 懶漢模式存在的問題及處理:多執行緒呼叫時容易出現建立多個物件,可以新增鎖來處理

class

single

public

static single getsingle()

}}return single;

}}

餓漢式:

工作中常用的是餓漢式

class

single2

public

static single2 getinstance()

}

執行緒同步鎖

同步鎖 對於兩個函式a,b,建立兩條執行緒,並且讓其睡眠,流程上看似輪流執行,其實不是,因為涉及到cpu切換去執行問題。import threading import time def a for i in range 3 print a str i time.sleep 0.01 def b fo...

Linux 執行緒同步方法 互斥鎖

在單執行緒條件下,由於對資料操作,在同樣的時間下,只有乙個執行緒來操作。所以不用擔心資料的同步問題。現代的作業系統,大都提供併發機制,雖然有時候是表面的併發。在 linux 中,併發用的最多的是基於執行緒的併發,程序的代價太高了,這樣,乙個共享的資料,在同一時間內,可能有多個執行緒在操作。如果沒有同...

終於理解單列模式了,單列模式和多執行緒

1 單例類確保自己只有乙個例項 構造方法私有化 2 單例類必須自己建立自己的例項。3 單例類必須為其他物件提供唯一的例項。package singleton 懶漢式 單例例項在第一次被使用時構建,延遲初始化。public class singleton return sing public void...