Java 多线程同步和异步详解
生活随笔
收集整理的這篇文章主要介紹了
Java 多线程同步和异步详解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
多線程并發(fā)時,多個線程同時請求同一個資源,必然導(dǎo)致此資源的數(shù)據(jù)不安全,A線程修改了B線
程的處理的數(shù)據(jù),而B線程又修改了A線程處理的數(shù)理。顯然這是由于全局資源造成的,有時為了解
決此問題,優(yōu)先考慮使用局部變量,退而求其次使用同步代碼塊,出于這樣的安全考慮就必須犧牲
系統(tǒng)處理性能,加在多線程并發(fā)時資源掙奪最激烈的地方,這就實(shí)現(xiàn)了線程的同步機(jī)制
同步:A線程要請求某個資源,但是此資源正在被B線程使用中,因?yàn)橥綑C(jī)制存在,A線程請求
不到,怎么辦,A線程只能等待下去
異步:A線程要請求某個資源,但是此資源正在被B線程使用中,因?yàn)闆]有同步機(jī)制存在,A線程
仍然請求的到,A線程無需等待
顯然,同步最最安全,最保險(xiǎn)的。而異步不安全,容易導(dǎo)致死鎖,這樣一個線程死掉就會導(dǎo)致整個
進(jìn)程崩潰,但沒有同步機(jī)制的存在,性能會有所提升
總結(jié)
以上是生活随笔為你收集整理的Java 多线程同步和异步详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程池中submit()方法与execu
- 下一篇: Java锁消除和锁粗化