日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java 多線程Synchronized和Lock的區(qū)別

瀏覽:103日期:2022-08-18 18:10:52
引言

在多線程中,為了使線程安全,我們經常會使用synchronized和Lock進行代碼同步和加鎖,但是具體兩者有什么區(qū)別,什么場景下適合用什么可能還不大清楚,主要的區(qū)別大致如下:

區(qū)別

1、synchronized是java關鍵字,而Lock是java中的一個接口

2、synchronized會自動釋放鎖,而Lock必須手動釋放鎖

3、synchronized是不可中斷的,Lock可以中斷也可以不中斷

4、通過Lock可以知道線程有沒有拿到鎖,而synchronized不能

5、synchronized能鎖住方法和代碼塊,而Lock只能鎖住代碼塊

6、Lock可以使用讀鎖提高多線程讀效率

7、synchronized是非公平鎖,ReentranLock可以控制是否公平鎖

從Lock接口中我們可以看到主要有5個方法,這些方法的功能從注釋中可以看出:

lock():獲取鎖,如果鎖被暫用則一直等待unlock():釋放鎖tryLock(): 注意返回類型是boolean,如果獲取鎖的時候鎖被占用就返回false,否則返回truetryLock(long time, TimeUnit unit):比起tryLock()就是給了一個時間期限,保證等待參數(shù)時間lockInterruptibly():用該鎖的獲得方式,如果線程在獲取鎖的階段進入了等待,那么可以中斷此線程,先去做別的事 通過 以上的解釋,大致可以解釋在上個部分中“鎖類型(lockInterruptibly())”,“鎖狀態(tài)(tryLock())”等問題,還有就是前面子所獲取的過程我所寫的“大致就是可以嘗試獲得鎖,線程可以不會一直等待”用了“可以”的原因。lock():

public class LockTest { private Lock lock = new ReentrantLock(); private void method(Thread thread) { lock.lock(); try { System.out.println(thread.getName() + ' has gotten the lock!'); } catch (Exception e) { e.printStackTrace(); } finally { System.out.println(thread.getName() + ' has unlocked the lock!'); lock.unlock(); } } public static void main(String[] args) { final LockTest test = new LockTest(); Thread t1 = new Thread(new Runnable() { @Override public void run() {test.method(Thread.currentThread()); } }, 't1'); Thread t2 = new Thread(new Runnable() { @Override public void run() {test.method(Thread.currentThread()); } }, 't2'); t1.start(); t2.start(); }}

運行結果:

t1 has gotten the lock!t1 has unlocked the lock!t2 has gotten the lock!t2 has unlocked the lock!tryLock():

public class LockTest { private Lock lock = new ReentrantLock(); private void method(Thread thread) { if (lock.tryLock()) { lock.lock(); try {System.out.println(thread.getName() + ' has gotten the lock!'); } catch (Exception e) {e.printStackTrace(); } finally {System.out.println(thread.getName() + ' has unlocked the lock!');lock.unlock(); } } else { System.out.println('I’m '+thread.getName()+'. Someone has gotten the lock!'); } } public static void main(String[] args) { LockTest test = new LockTest(); Thread t1 = new Thread(() -> test.method(Thread.currentThread()), 't1'); Thread t2 = new Thread(new Runnable() { @Override public void run() {test.method(Thread.currentThread()); } }, 't2'); t1.start(); t2.start(); }}

運行結果:

t1 has gotten the lock!t1 has unlocked the lock!I’m t2. Someone has gotten the lock!

看到這里相信大家也都會使用如何使用Lock了吧,關于tryLock(long time, TimeUnit unit)和lockInterruptibly()不再贅述。前者主要存在一個等待時間,在測試代碼中寫入一個等待時間,后者主要是等待中斷,會拋出一個中斷異常,常用度不高,喜歡探究可以自己深入研究。

以上就是Java 多線程Synchronized和Lock的區(qū)別的詳細內容,更多關于Java 多線程Synchronized和Lock的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产一区久久| 亚洲大片在线| 日韩中文字幕视频网| 好看不卡的中文字幕| 亚洲成人二区| 精品丝袜在线| 激情婷婷欧美| 久久天堂成人| 好看的亚洲午夜视频在线| 在线日韩一区| 天堂成人国产精品一区| 亚洲麻豆一区| 国产精品主播在线观看| 国产精品一二| 欧美xxxx中国| 欧美aa国产视频| 先锋亚洲精品| 青草久久视频| 精品国产欧美日韩| 久久裸体视频| 午夜在线精品偷拍| 日本少妇一区二区| 国产精品一区免费在线| 国产在线日韩精品| 久久久久免费av| 成人av二区| 亚洲精品免费观看| 久久久久久久久成人| 日韩不卡视频在线观看| 国产视频一区在线观看一区免费| 蜜臀av一区二区在线免费观看| 日韩激情av在线| 精品一区二区三区视频在线播放| 亚洲国产欧美日本视频| 91久久亚洲| 久久黄色影视| 国产中文在线播放| 国产精品美女久久久| 免费在线观看精品| 免费亚洲婷婷| 欧美女激情福利| 国产精品一二| 视频一区中文| 国产精品任我爽爆在线播放| 天堂8中文在线最新版在线| 中国女人久久久| 老司机精品视频网| 欧美日韩国产综合网| 国产欧美日韩在线一区二区| 天堂日韩电影| 久久国际精品| 欧美不卡高清| 久久超碰99| 欧美日韩色图| 国产精品中文字幕制服诱惑| 国产一区二区三区自拍| 奇米狠狠一区二区三区| 久久精品亚洲人成影院| 日韩av网站在线观看| 91精品久久久久久久久久不卡| 亚洲一区二区三区免费在线观看| 美日韩一区二区三区| 久久国产精品亚洲77777| 久久精品国产免费| 日韩在线一区二区| 久久久久久一区二区| 伊人www22综合色| 欧美日韩国产观看视频| 中文无码日韩欧| 成人欧美一区二区三区的电影| 婷婷亚洲成人| 精品中文字幕一区二区三区av| 国产精品一国产精品| 国产午夜精品一区二区三区欧美| 精品三级久久久| 日韩**一区毛片| 婷婷久久一区| 国产美女高潮在线观看| 欧美偷窥清纯综合图区| 国产精品日韩久久久| 中文字幕在线视频久| 国产精品视频一区二区三区四蜜臂 | 精品国产亚洲一区二区三区| 老司机久久99久久精品播放免费| 亚洲va中文在线播放免费| 国产精品久一| 亚洲日本在线观看视频| 午夜av一区| 香蕉成人av| 老牛国内精品亚洲成av人片 | 欧美日韩国产综合网| 日韩av二区| 国产精品极品| 91亚洲精品在看在线观看高清| 悠悠资源网久久精品| 久久久久国产一区二区| 国产在线一区不卡| 国产精品巨作av| 91成人小视频| 亚洲精品九九| 美女精品一区| 午夜日本精品| 亚洲精品在线影院| 中文字幕一区久| 国产精品15p| 日韩av不卡一区二区| 亚洲欧美在线综合| 日韩中文字幕不卡| 视频一区二区三区入口| 欧美精品九九| 亚洲精品国产偷自在线观看| 人人精品亚洲| 日韩免费福利视频| 日韩电影免费网址| 日韩精品永久网址| 在线观看精品| 欧美一区二区三区高清视频| 久久精品欧美一区| 激情欧美一区| 午夜电影亚洲| 国产精品免费看| 亚洲网址在线观看| 少妇高潮一区二区三区99| 日韩激情一区二区| 国产情侣一区| 欧美激情日韩| 精品免费av| 伊伊综合在线| 欧美一区三区| 99视频一区| 亚洲伊人精品酒店| 日韩高清电影一区| 国产精品1luya在线播放| 日本一区二区免费高清| 亚洲天堂免费电影| 久久伦理在线| 欧美日韩国产一区精品一区| 免费一级片91| 日韩欧美中文字幕电影| 国产亚洲一区| 精品久久电影| 日韩精品一卡| 国产精品毛片| 日本不卡一二三区黄网| 国产欧美日韩影院| 国产aⅴ精品一区二区三区久久| 日韩av自拍| 欧美亚洲在线日韩| 免费人成精品欧美精品| 欧美欧美黄在线二区| 国产精久久久| 欧美日韩在线观看首页| 欧美日韩国产在线一区| 日韩激情综合| 日韩88av| 久久亚洲不卡| 国产精品2023| 久久蜜桃资源一区二区老牛| 久久亚洲影院| 国产乱码精品一区二区三区亚洲人 | 麻豆mv在线观看| 国产一区日韩一区| 在线日韩成人| 欧美黑人巨大videos精品| 日韩精品dvd| 亚洲婷婷丁香| 成午夜精品一区二区三区软件| 精品中文在线| 国产精品mm| 亚洲91网站| 国产欧美一区二区三区米奇| 日韩av一二三| 另类专区亚洲| 亚洲一区二区免费在线观看| 国产精品九九| 欧美日韩国产在线观看网站 | 欧美另类中文字幕| 精品国模一区二区三区| 亚洲aa在线| 日韩三区免费| 亚洲精品一级| 日韩欧美在线中字| 日韩午夜视频在线| 日韩一区二区在线免费| 中文字幕日本一区二区| 精品国产网站| 日韩精品一区第一页| 精品一区二区三区中文字幕在线| 亚洲经典在线| 国产aⅴ精品一区二区三区久久 | 99香蕉国产精品偷在线观看 | 精品一区二区三区免费看| 丝袜脚交一区二区| 精品一区二区三区中文字幕视频| 四虎国产精品免费观看| 日本久久成人网| 久久久精品五月天| 国产欧美自拍| 噜噜噜躁狠狠躁狠狠精品视频 | 91综合网人人|