1樓:褲傾牆魚分
1: 加鎖 利用synchronized或者reentrantlock來對不安全物件進行加鎖,來實現執行緒執行的序列化,從而保證多執行緒。
同時操作物件的安全性,乙個是語法層面的互斥鎖。
乙個是api層面的互斥鎖。
2: 非阻塞同步來實現執行緒安全。
原理就是:通俗點講,就是先進性操作,如果沒有其他執行緒爭用共享資料,那操作就成功了;如果共享資料有爭用,產生衝突,那就再採取其他措施(最常見的措施就是不斷地重試,直到成功為止)。這種方法需要硬體的支援,因為我們需要操作和衝突檢測這兩個步驟具備原子性。
通常這種指令包括cas sc,fai tas等。
3:執行緒本地化,一種無同步的方案,就是利用threadlocal來為每乙個執行緒創造乙個共享變數的副本來(副本之間是無關的)避免幾個執行緒同時操作乙個物件時發生執行緒安全問題。
2樓:帳號已登出
1、互斥同步 互斥同步是最常見的一種併發正確性保障手段。同步是指在多執行緒併發訪問共享資料時,保證共享資料在同一時刻只被乙個執行緒使用(同一時刻,只有乙個執行緒在操作共享資料)。而互斥是實現同步的一種手段,臨界區、互斥量和訊號量都是主要的互斥實現方式。
因此,在這4個字裡面,互斥是因,同步是果;互斥是方法,同步是目的。
3樓:匿名使用者
ad-hoc 執行緒封閉。
這是完全靠實現者控制的執行緒封閉,他的執行緒封閉完全靠實現者實現。
ad-hoc 執行緒封閉非常脆弱,應該儘量避免使用。
棧封閉。棧封閉是我們程式設計當中遇到的最多的執行緒封閉。
什麼是棧封閉呢?
簡單的說就是區域性變數。
多個執行緒訪問乙個方法,此方法中的區域性變數都會被拷貝乙份到執行緒棧中。所以區域性變數是不被多個執行緒所共享的,也就不會出現併發問題。所以能用區域性變數就別用全域性的變數,全域性變數容易引起併發問題。
來自網路,侵刪。
4樓:帳號已登出
當多個執行緒訪問某個方法時,不管你通過怎樣的呼叫方式或者說這些執行緒如何交替的執行,我們在主程式中不需要去做任何的同步,這個類的結果行為都是我們設想的正確行為,那麼我們就可以說這個類時執行緒安全的。
如果一段**可以保證多個執行緒訪問的時候正確操作共享資料,那麼它是執行緒安全的。
5樓:聲貞禕
執行緒安全就是多執行緒訪問時,採用了加鎖機制,當乙個執行緒訪問該類的某個資料時,進行保護,其他執行緒不能進行訪問直到該執行緒讀取完,其他執行緒才可使用。 不會出現資料不一致或者資料汙染。 執行緒不安全就是不提供資料訪問保護,有可能出現多個執行緒先後更改資料造成所得到的資料是髒資料。
6樓:失心瘋終成過去
如果每個執行緒中對全域性變數、靜態變數只有讀操作,而無寫操作,這個全域性變數是執行緒安全的;若有多個執行緒同時執行寫操作,一般都需要考慮執行緒同步,否則就可能影響。
7樓:普楣楣
如何保證執行緒安全? 執行緒安全: 執行緒安全就是多執行緒訪問時,採用了加鎖機制,當乙個執行緒訪問該類的某個資料時,進行保護,其他執行緒不能進行訪問直到該執行緒讀取完,其他執行緒才可使用。
不會出現資料不一致或者資料汙染。
8樓:匿名使用者
執行緒安全是多執行緒程式設計時的電腦程式**中的乙個概念。在擁有共享資料的多條執行緒並行執行的程式中,執行緒安全的**會通過同步機制保證各個執行緒都可以正常。
9樓:帳號已登出
程安全的概念執行緒安全是多執行緒程式設計是的電腦程式**中的乙個概念。在擁有共享資料的多條執行緒並行執行的程式中,執行緒安全的。
10樓:春秋再拍案
你理解的人越多,理解你的人越少;大部分普通人的看法,都不是距離成功最近,因為大部分人的眼界和層次沒有達到那個地步。
11樓:帳號已登出
執行緒安全的實現方法 什麼是執行緒安全? 執行緒安全:《jvm的高效能與最佳實踐》有說,「多個執行緒訪問同乙個物件,如果我們不用考慮執行緒執行時的排程和交替執行。
12樓:on自由客90後
什麼是執行緒安全?定義:指**能夠被多個執行緒呼叫而不會產生災難性後果;特點:不要求**在多個執行緒中高效的執行,只要求能夠安全地執行。
13樓:匿名使用者
保證執行緒安全以是否需要同步手段分類,分為同步方案和無需同步方案。
14樓:酸酸甜甜
hashtable 是乙個執行緒安全的類,hashtable 幾乎所有的新增、刪除、查詢方法都加了synchronized同步鎖!
15樓:步利
搜一下:需要執行緒安全 以及如何實現執行緒安全。
16樓:帳號已登出
對於執行緒不安全的物件我們可以通過如下方法來實現執行緒安全:
加鎖 利用synchronized或者reentrantlock來對不安全物件進行加鎖,來實現執行緒執行的序列化,從而保證多執行緒同時操作物件的安全性,乙個是語法層面的互斥。
非阻塞同步來實現執行緒安全。原理就是:通俗點講,就是先進性操作,如果沒有其他執行緒爭。
既然這裡說到了多執行緒,那我們就來說說多執行緒中一些常見的問題吧 先說一下執行緒的基本。
什麼是執行緒安全?
17樓:照小號
執行緒安冇全是昌清多執行緒編冇程時的計算機程冇序代冇碼冇中的乙個概念。在擁有共享數冇據的多條執行緒並行執冇行的程冇序冇中,執行緒安冇全的代旅迅寬冇碼會通過同步機冇制保證各個執行緒都可以正常且正確的執冇行,不會出現數冇據汙冇染等意冇外情況。
18樓:網友
執行緒安全是多執行緒程式設計時雹叢的計算塌春機程團肆耐序**中的乙個概念。在擁有共享資料的多條執行緒並行執行的程式中,執行緒安全的**會通過同步機制保證各個執行緒都可以正常且正確的執行,不會出現資料汙染等意外情況。
什麼是執行緒安全?
19樓:雲南新華電腦學校
執行緒安全是指如果在程序中有多個執行緒同時運營,而這些執行緒同時執行一段**,執行緒安全的**會通過同步機制保證各個執行緒都可以正常且正確的執行,不使得每次執行結果和單執行緒執行的結果是一樣的,而且其他的變數的值也和預期的是一樣的。
如何建立執行緒?如何保證執行緒安全?
20樓:圈內早知道
一、執行緒安全在三個方面體現。
1.原子性:提供互斥訪問,同一時刻只能有乙個執行緒對資料進行操作,(atomic,synchronized);
2.可見性:乙個執行緒對主記憶體的修改可以及時地被其他執行緒看到,(synchronized,volatile);
3.有序性:乙個執行緒觀察其他執行緒中的指令執行順序,由於指令重排序,該觀察結果一般雜亂無序,(happens-before原則)。
如何實現多執行緒同時讀寫hashmap
有2種辦法讓hashmap執行緒安全,分別如下 方法一 通過collections.synchronizedmap 返回乙個新的map,這個新的map就是執行緒安全的。這個要求大家習慣基於介面程式設計,因為返回的並不是hashmap,而是乙個map的實現。方法二 重新改寫了hashmap,如何實現執...
為什麼有人說Python的多執行緒是雞肋
差不多是這樣子。多執行緒目前僅用於網路多執行緒採集,以及效能測試。其它的語言也有類似的情況,執行緒本身的特點導致執行緒的適用範圍是受限的。只有cpu過剩,而其它的任務很慢,此時用執行緒才是有益的,可以很好平衡等待時間,提高併發效能。執行緒的問題主要是執行緒的安全穩定性。執行緒無法強制中止,同時執行緒...
智慧型安全帽可以實現什麼功能
等模組,是一款高整合度的可視穿戴物聯網裝置。除了定位和記錄儲存之外,還具備 即時直播 通話對講 廣播喊話 夜視照明的功能,具備後臺管理,實現平臺 前端裝置一體的工作模式。智慧型安全帽十大功能。前方作業 場景可通過g wifi即時傳輸到指定的平臺,實現前方作業場景 檢視瀏覽,裝置到哪 看到哪,隨時隨地看...