新聞中心
Thread.sleep是什么意思?有什么作用?
Thread.Sleep()方法用于將當(dāng)前線程休眠一定時(shí)間時(shí)間單位是毫秒1000毫秒=1秒休眠的時(shí)間可以用于讓其他線程完成當(dāng)前工作,亦可以減少CPU占用時(shí)間。避免程序出現(xiàn)長時(shí)間CPU占用100%的情況。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供興安盟烏蘭浩特企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、H5技術(shù)、小程序制作等業(yè)務(wù)。10年已為興安盟烏蘭浩特眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
如果需要對其他線程操作可以先實(shí)例化該線程。然后使用sleep方法。
System.Threading.Thread.Sleep(2000);當(dāng)前休眠2秒
suspen()掛起當(dāng)前線程。也可以指定掛起時(shí)間。
close()關(guān)閉當(dāng)前線程。
sleep和wait有什么區(qū)別?
區(qū)別就是兩者意思是不一樣具體的不同如下
sleep中文意思是v.
睡覺;入睡;可供…睡覺;可供…住宿;
n.
睡眠;睡覺;睡眠時(shí)間;一覺;眼屎;
例句
How long can a human being go without sleep?
人不睡覺能活多久?
線程sleep和wait的區(qū)別:
1、這兩個(gè)方法來自不同的類分別是Thread和Object2、最主要是sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。
3、wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用(使用范圍)
4、sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常5、sleep是Thread類的靜態(tài)方法。sleep的作用是讓線程休眠制定的時(shí)間,在時(shí)間到達(dá)時(shí)恢復(fù),也就是說sleep將在接到時(shí)間到達(dá)事件事恢復(fù)線程執(zhí)行。
wait是Object的方法,也就是說可以對任意一個(gè)對象調(diào)用wait方法,調(diào)用wait方法將會將調(diào)用者的線程掛起,直到其他線程調(diào)用同一個(gè)對象的notify方法才會重新激活調(diào)用者。
對于sleep()方法,我們首先要知道該方法是屬于Thread類中的。而wait()方法,則是屬于Object類中的。
java中多線程常見的幾個(gè)參數(shù)?
java中多線程常見的幾個(gè)參數(shù):
sleep:在指定的毫秒數(shù)內(nèi)讓當(dāng)前正在執(zhí)行的線程休眠(暫停執(zhí)行).
此操作受到系統(tǒng)計(jì)時(shí)器和調(diào)度程序精度和準(zhǔn)確性的影響。
該線程不丟失任何監(jiān)視器的所屬權(quán)。
調(diào)用sleep的時(shí)候鎖并沒有被釋放。
休眠
Java SE5引入了更加顯示的sleep()作為TimeUnit類的一部分,這個(gè)方法允許你指定sleep()延遲的時(shí)間單元,因此可以提供更好的可閱讀性。
wait:調(diào)用wait使線程掛起,直到線程得到了notify或notifyAll消息,線程才會進(jìn)入就緒狀態(tài)。
使你可以等待某個(gè)條件發(fā)生變化,而改變這個(gè)條件超出了當(dāng)前方法的控制能力。
線程的執(zhí)行被掛起,對象上的鎖被釋放。意味著另一個(gè)任務(wù)可以獲得這個(gè)鎖。
為什么使用spinlock?
使用spinlock是為了保證臨界區(qū)不被多個(gè)線程同時(shí)訪問而導(dǎo)致數(shù)據(jù)沖突。
1. spinlock實(shí)現(xiàn)比較簡單,效率較高,因?yàn)檫M(jìn)入臨界區(qū)的線程只會一直嘗試獲取鎖,直到獲取成功才會繼續(xù)執(zhí)行,而不是一味地阻塞等待。
這樣可以保證線程在等待鎖的過程中不會因?yàn)樯舷挛那袚Q帶來額外的性能損耗。
2. 當(dāng)多個(gè)線程需要對共享資源進(jìn)行操作時(shí),如果沒有保證臨界區(qū)的互斥性,就有可能會出現(xiàn)數(shù)據(jù)異常的情況,影響程序的正確性。
spinlock可以保證在每個(gè)時(shí)刻只有一個(gè)線程能夠進(jìn)入臨界區(qū),避免數(shù)據(jù)訪問出錯(cuò)。
綜上所述,使用spinlock是出于對多線程程序正確性和性能的考慮。
到此,以上就是小編對于java線程休眠的方法有哪些呢的問題就介紹到這了,希望這4點(diǎn)解答對大家有用。
網(wǎng)站名稱:Thread.sleep是什么意思?有什么作用?(java線程休眠的方法有哪些)
文章位置:http://www.dlmjj.cn/article/djechio.html


咨詢
建站咨詢
