色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java多線程之synchronized關(guān)鍵字的使用

瀏覽:2日期:2022-08-13 13:12:11
一、使用在非靜態(tài)方法上

public synchronized void syzDemo(){ System.out.println(System.currentTimeMillis()); System.out.println('進(jìn)入synchronized鎖:syzDemo'); try {Thread.sleep(1000); } catch (InterruptedException e) {e.printStackTrace(); }}二、使用在靜態(tài)方法上

public synchronized static void syzDemo1(){ System.out.println(System.currentTimeMillis()); System.out.println('進(jìn)入synchronized鎖:syzDemo1'); try {Thread.sleep(1000); } catch (InterruptedException e) {e.printStackTrace(); }}三、使用在代碼塊上

public synchronized void syzDemo2(){ synchronized (this){System.out.println(System.currentTimeMillis());System.out.println('進(jìn)入synchronized鎖:syzDemo2');try { Thread.sleep(1000);} catch (InterruptedException e) { e.printStackTrace();} }}public synchronized void syzDemo3(){ synchronized (ExcelUtil.class){ System.out.println(System.currentTimeMillis()); System.out.println('進(jìn)入synchronized鎖:syzDemo3'); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } }}四、三種方式的區(qū)別

public static void main(String[] args) {SyzDemo syzDemo = new SyzDemo();SyzDemo syzDemo1 = new SyzDemo();Thread thread = new Thread(()->{ syzDemo.syzDemo();});thread.start();Thread thread1 = new Thread(()->{ syzDemo1.syzDemo();});thread1.start(); }4.1 不會(huì)互斥

public static void main(String[] args) {SyzDemo syzDemo = new SyzDemo();SyzDemo syzDemo1 = new SyzDemo();Thread thread = new Thread(()->{ syzDemo.syzDemo();});thread.start();Thread thread1 = new Thread(()->{ syzDemo.syzDemo();});thread1.start(); }4.2 互斥

public static void main(String[] args) {SyzDemo syzDemo = new SyzDemo();SyzDemo syzDemo1 = new SyzDemo();Thread thread = new Thread(()->{ syzDemo.syzDemo1();});thread.start();Thread thread1 = new Thread(()->{ syzDemo1.syzDemo1();});thread1.start(); }

解析:

在圖1中thread1和thread分別調(diào)用syzDemo和syzDemo1對(duì)象中的syzDemo方法,因?yàn)閮蓚€(gè)線程調(diào)用是不同的對(duì)象的兩個(gè)方法,所以不會(huì)互斥

在圖2中thread1和thread都在調(diào)用syzDemo對(duì)象中的syzDemo方法,因?yàn)閟yzDemo方法加了synchronized

在圖3中thread1和thread分別調(diào)用syzDemo和syzDemo1對(duì)象中的syzDemo1方法,但是因?yàn)閟yzDemo1方法屬于靜態(tài)方法,在類加載時(shí)就會(huì)加載到方法區(qū),所以本質(zhì)上兩個(gè)線程都在調(diào)用同一個(gè)方法,于是產(chǎn)生了互斥

syzDemo2中與syzDemo相同:鎖定的是當(dāng)前實(shí)例的這一段代碼,只有多個(gè)線程中調(diào)用的是同一個(gè)實(shí)例且執(zhí)行到這一段代碼時(shí)才會(huì)互斥,syzDemo3于syzDemo1相同:鎖定的是當(dāng)前類的這一段代碼,只要多個(gè)線程共同執(zhí)行這一段代碼就會(huì)產(chǎn)生互斥

到此這篇關(guān)于Java多線程之synchronized關(guān)鍵字的使用的文章就介紹到這了,更多相關(guān)Java synchronized關(guān)鍵字內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 免费观看成为人视频 | 欧美 亚洲 丝袜 清纯 中文 | 中文字幕日韩精品有码视频 | 中文字幕在线成人免费看 | 久久免费观看国产精品 | 国产成人精品区在线观看 | 亚洲精品亚洲一区二区 | 日本xxxxxxx69xx | 男人的天堂欧美精品色偷偷 | 国产一区精品在线观看 | 久久精品视频播放 | 亚洲精品国产综合一线久久 | 亚洲久久久久久久 | 国产精品无码久久av | 色综合久久88色综合天天 | 亚洲美女在线播放 | 亚洲高清无在码在线无弹窗 | 女同日韩互慰互摸在线观看 | 免费a级毛片大学生免费观看 | 91亚洲国产成人久久精品网站 | 中国美女一级片 | 国内精品91久久久久 | 请看一下欧美一级毛片 | 成人免费黄色网址 | 欧美日韩亚洲高清不卡一区二区三区 | 美女视频黄的免费视频网页 | 免费精品一区二区三区在线观看 | a级毛片毛片免费观看久潮喷 | 国产三级一区二区 | 久久精品一级 | 香蕉久久夜色精品国产 | 久视频在线观看 | 在线看片中文字幕 | 久久久久成人精品一区二区 | 两性色午夜视频免费国产 | 91在线亚洲 | 成人免费视频一区二区 | 在线看免费观看韩国特黄一级 | 韩国免又爽又刺激激情视频 | 亚洲国语在线视频手机在线 | 日朝欧美亚洲精品 |