freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

03講_線程進(jìn)程安全(存儲(chǔ)版)

  

【正文】 線程中,訪問(wèn)了某個(gè)對(duì)象,此時(shí),除非同步鎖定被解除,否則其他線程就不能訪問(wèn)那個(gè)對(duì)象。造成互相等待。在系統(tǒng)設(shè)計(jì)、線程開(kāi)發(fā)等方面,注意如何不讓這四個(gè)必要條件成立,如何確定資源的合理分配算法,避免線程永久占據(jù)系統(tǒng)資源。在操作系統(tǒng)的一些參考資料中應(yīng)該可以進(jìn)行足夠了解。資源池太小,而每個(gè)線程需要的資源超過(guò)了池中的可用資源,產(chǎn)生死鎖。以線程暫停為例,調(diào)用 suspend()的時(shí)候,目標(biāo)線程會(huì)停下來(lái),但卻仍然持有在這之前獲得的鎖定。怎樣讓 run()方法結(jié)束呢?一般可用一個(gè)標(biāo)志告訴線程什么時(shí)候通過(guò)退出自己的 run()方法來(lái)中止自己的執(zhí)行。 一個(gè)進(jìn)程可以包含若干線程,線程可以幫助應(yīng)用程序同時(shí)做幾件事 (比如一個(gè)線程向磁盤(pán)寫(xiě)入文件,另一個(gè)則接收用戶的按鍵操作并及時(shí)做出反應(yīng),互相不干擾 )。從開(kāi)發(fā)者角度,首先講解了線程的的基本機(jī)制,然后講解線程操作過(guò)程中幾個(gè)重要的安全問(wèn)題:線程同步安全、線程協(xié)作安全、線程死鎖、線程控制安全等。并觀察其解決方法。 13:19:2113:19:2113:19Sunday, January 22, 2023 ? 1乍見(jiàn)翻疑夢(mèng),相悲各問(wèn)年。 13:19:2113:19:2113:191/22/2023 1:19:21 PM ? 1成功就是日復(fù)一日那一點(diǎn)點(diǎn)小小努力的積累。 下午 1時(shí) 19分 21秒 下午 1時(shí) 19分 13:19: ? 楊柳散和風(fēng),青山澹吾慮。 2023年 1月 下午 1時(shí) 19分 :19January 22, 2023 ? 1業(yè)余生活要有意義,不要越軌。 :19:2113:19:21January 22, 2023 ? 1意志堅(jiān)強(qiáng)的人能把世界放在手中像泥塊一樣任意揉捏。 2023年 1月 下午 1時(shí) 19分 :19January 22, 2023 ? 1少年十五二十時(shí),步行奪得胡馬騎。 下午 1時(shí) 19分 21秒 下午 1時(shí) 19分 13:19: ? 沒(méi)有失敗,只有暫時(shí)停止成功!。 13:19:2113:19:2113:191/22/2023 1:19:21 PM ? 1以我獨(dú)沈久,愧君相見(jiàn)頻。 4:界面上有個(gè)小紅球,要求能夠慢慢掉下來(lái)然后彈起來(lái);為了逼真,當(dāng)球在比較上方的時(shí)候,球比較大,球落下時(shí),慢慢變??;在界面右下角有一個(gè)“暫停”按鈕,可以讓動(dòng)畫(huà)暫停;動(dòng)畫(huà)暫停之后又可以點(diǎn)擊按鈕讓動(dòng)畫(huà)繼續(xù)運(yùn)行。一般情況下,此時(shí)考慮的問(wèn)題和線程安全類似,因?yàn)樵谶@種軟件中,各個(gè)進(jìn)程在使用系統(tǒng)有限的資源,和線程安全中考慮的問(wèn)題類似,在此不再敘述。進(jìn)程由進(jìn)程控制塊、程序段、數(shù)據(jù)段三部分組成。 如上所述,該代碼實(shí)際上在事件響應(yīng)中用 suspend()和 resume()來(lái)控制線程的暫停和繼續(xù),是不安全的。 ? 針對(duì)這個(gè)問(wèn)題,為減少出現(xiàn)死鎖的可能, Java ,將 Thread的 stop(),suspend(), resume()以及 destroy()方法定義為“已過(guò)時(shí)”方法,不再推薦使用。這將釋放所有與已經(jīng)結(jié)束的事務(wù)相關(guān)聯(lián)的鎖,至少允許其他連接中有一個(gè)可以獲取它們正在被阻塞的鎖。 ? 從陷于死鎖的線程中逐個(gè)強(qiáng)迫放棄所占用的資源,直至死鎖消失。 解決方案 就語(yǔ)言本身來(lái)說(shuō),尚未直接提供防止死鎖的幫助措施,需要我們通過(guò)謹(jǐn)慎的設(shè)計(jì)來(lái)避免。但是和上一節(jié)的例子一樣,它也是很不安全的,這種不安全性也很難發(fā)現(xiàn)。如前面的“線程同步代碼段”,就是只能被一個(gè)線程使用的典型資源; ? 請(qǐng)求與保持條件:一個(gè)線程請(qǐng)求資源,但因?yàn)槟撤N原因,該資源無(wú)法分配給它,于是該線程阻塞,此時(shí),它對(duì)已獲得的資源保持不放; ? 不剝奪條件:進(jìn)程已獲得的資源,在未使用完之前,不管其是否阻塞,無(wú)法強(qiáng)行剝奪; ? 循環(huán)等待條件:若干進(jìn)程之間互相等待,形成一種頭尾相接的循環(huán)等待資源關(guān)系。以 Java語(yǔ)言為例,在 Java語(yǔ)言中,線程的 join()方法可以解決這個(gè)問(wèn)題。 該程序貌似沒(méi)有問(wèn)題,也能夠打印正確結(jié)果,但是和上一節(jié)的例子一樣,它也是很不安全的,這種不安全性也很難發(fā)現(xiàn),也會(huì)給項(xiàng)目后期維護(hù)帶來(lái)巨大的代價(jià)。 線程協(xié)作安全 線程協(xié)作 有些情況下,多個(gè)線程合作 完成一件事情的幾個(gè)步驟,此時(shí)線程之間實(shí)現(xiàn)了協(xié)作。若有,就必須等待。在上面的例子中, this是一個(gè)“同步鎖對(duì)象”。 有一種比較直觀的方法,可以在共享資源(如“票”)每一個(gè)對(duì)象內(nèi)部都增加一個(gè)新成員,標(biāo)識(shí)“票”是否正在被賣(mài)中,其他線程訪問(wèn)時(shí),必須檢查這個(gè)標(biāo)識(shí),如果這個(gè)標(biāo)識(shí)確定票正在被賣(mài)中,線程不能搶占 CPU。運(yùn)行,控制臺(tái)打印如下: 最后一張票被賣(mài)出兩次,系統(tǒng)不可靠。首先用傳統(tǒng)方法來(lái)編寫(xiě)這段代碼。 線程同步安全 線程同步 默認(rèn)情況下,線程都是獨(dú)立的,而且異步執(zhí)行,線程中包含了運(yùn)行時(shí)所需要的數(shù)據(jù)或方法,而不需要外部的資源或方法,也不必關(guān)心其它線程的狀態(tài)或行為。 2:可運(yùn)行狀態(tài):使用 start()方法啟動(dòng)一個(gè)線程后,系統(tǒng)分配了資源,使該線程處于可運(yùn)行狀態(tài)( Runnable)。 WeleThread wt = new WeleThread()。比如,媒體播放機(jī)運(yùn)行時(shí)就是一個(gè)進(jìn)程,而媒體播放機(jī)同時(shí)做的下載文件和播放歌曲,就是兩個(gè)線程。 //代碼行 1 } } 該程序似乎沒(méi)有什么問(wèn)題,運(yùn)行時(shí), Wele也能不斷打印。 本章主要針對(duì)線程和進(jìn)程開(kāi)發(fā)過(guò)程中的安全問(wèn)題進(jìn)行講述,首先基于面向?qū)ο笳Z(yǔ)言,講解線程的的基本機(jī)制,然后講解線程操作過(guò)程中的幾個(gè)重要的安全問(wèn)題:線程同步安全、線程協(xié)作安全、線程死鎖、線程控制,最后講解進(jìn)程安全。運(yùn)行一個(gè)程序,相當(dāng)于啟動(dòng)了一個(gè)進(jìn)程。一個(gè)線程可以創(chuàng)建和撤消另一個(gè)線程,同一進(jìn)程中的多個(gè)線程之間可以并
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1