自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java線程通信簡(jiǎn)單調(diào)試方法介紹

開(kāi)發(fā) 后端
Java線程通信在使用的時(shí)候需要我們?cè)敿?xì)的學(xué)習(xí),在學(xué)習(xí)的時(shí)候會(huì)遇到不少小問(wèn)題,下面我們就詳細(xì)的學(xué)習(xí)下相關(guān)的問(wèn)題。

Java線程通信在我們使用的時(shí)候需要長(zhǎng)期的學(xué)習(xí),在學(xué)習(xí)的過(guò)程中我們就要詳細(xì)的看看如何才能更好的掌握相關(guān)語(yǔ)言的使用問(wèn)題。首先我們來(lái)看看具體的相關(guān)問(wèn)題處理。

使當(dāng)前Java線程通信(即調(diào)用該方法的線程)暫停執(zhí)行一段時(shí)間,讓其他線程有機(jī)會(huì)繼續(xù)執(zhí)行,但它并不釋放對(duì)象鎖。也就是如果有Synchronized同步塊,其他線程仍然不同訪問(wèn)共享數(shù)據(jù)。注意該方法要捕獲異常#t#

比如有兩個(gè)線程同時(shí)執(zhí)行(沒(méi)有Synchronized),一個(gè)線程優(yōu)先級(jí)為MAX_PRIORITY,另一個(gè)為MIN_PRIORITY,如果沒(méi)有Sleep()方法,只有高優(yōu)先級(jí)的線程執(zhí)行完成后,低優(yōu)先級(jí)的線程才能執(zhí)行;但當(dāng)高優(yōu)先級(jí)的線程sleep(5000)后,低優(yōu)先級(jí)就有機(jī)會(huì)執(zhí)行了。

總之,sleep()可以使低優(yōu)先級(jí)的Java線程通信得到執(zhí)行的機(jī)會(huì),當(dāng)然也可以讓同優(yōu)先級(jí)、高優(yōu)先級(jí)的線程有執(zhí)行的機(jī)會(huì)。

join()

join()方法使調(diào)用該方法的Java線程通信在此之前執(zhí)行完畢,也就是等待調(diào)用該方法的線程執(zhí)行完畢后再往下繼續(xù)執(zhí)行。注意該方法也要捕獲異常。

yield()

它與sleep()類似,只是不能由用戶指定暫停多長(zhǎng)時(shí)間,并且yield()方法只能讓同優(yōu)先級(jí)的線程有執(zhí)行的機(jī)會(huì)。

wait()和notify()、notifyAll()

這三個(gè)方法用于協(xié)調(diào)多個(gè)Java線程通信對(duì)共享數(shù)據(jù)的存取,所以必須在Synchronized語(yǔ)句塊內(nèi)使用這三個(gè)方法。前面說(shuō)過(guò)Synchronized這個(gè)關(guān)鍵字用于保護(hù)共享數(shù)據(jù),阻止其他線程對(duì)共享數(shù)據(jù)的存取。但是這樣程序的流程就很不靈活了,如何才能在當(dāng)前線程還沒(méi)退出Synchronized數(shù)據(jù)塊時(shí)讓其他線程也有機(jī)會(huì)訪問(wèn)共享數(shù)據(jù)呢?此時(shí)就用這三個(gè)方法來(lái)靈活控制。

wait()方法使當(dāng)前線程暫停執(zhí)行并釋放對(duì)象鎖標(biāo)志,讓其他線程可以進(jìn)入Synchronized數(shù)據(jù)塊,當(dāng)前線程被放入對(duì)象等待池中。當(dāng)調(diào)用 notify()方法后,將從對(duì)象的等待池中移走一個(gè)任意的線程并放到鎖標(biāo)志等待池中,只有鎖標(biāo)志等待池中的線程能夠獲取鎖標(biāo)志;如果鎖標(biāo)志等待池中沒(méi)有Java線程通信,則notify()不起作用。

notifyAll()則從對(duì)象等待池中移走所有等待那個(gè)對(duì)象的線程并放到鎖標(biāo)志等待池中。

責(zé)任編輯:張浩 來(lái)源: 博客園
相關(guān)推薦

2010-03-22 09:52:30

Server Sock

2010-03-03 10:58:05

Python PDB

2011-07-11 14:19:54

JAVA串口通信

2011-07-11 14:12:19

Java串口通信

2012-12-24 09:55:59

交換機(jī)網(wǎng)絡(luò)通信

2009-06-23 11:05:05

Mircosoft C

2010-06-10 17:45:03

Linux 開(kāi)發(fā)工具

2022-01-17 21:29:36

通信信息電線

2009-10-12 13:19:14

VB.NET線程同步

2009-12-04 13:31:50

VS代碼調(diào)試

2010-03-12 10:20:19

Fedora內(nèi)核

2009-08-20 16:25:59

C# 匿名方法

2009-08-14 17:27:56

C#方法參數(shù)

2010-03-10 16:34:41

2010-06-11 14:30:42

openSUSE Nv

2010-03-05 13:59:16

Linux服務(wù)器內(nèi)存

2010-03-22 10:59:24

Java Socket

2011-07-04 10:04:52

java網(wǎng)絡(luò)程序

2011-06-27 13:17:07

Java EE

2009-12-11 15:17:52

PHP驗(yàn)證碼調(diào)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)