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

正文內(nèi)容

03講_線程進(jìn)程安全(完整版)

2025-01-28 07:20上一頁面

下一頁面
  

【正文】 ,希望該計(jì)算進(jìn)行的時(shí)候,程序還可以做其他事情; ? 程序進(jìn)行一個(gè)用時(shí)較長(zhǎng)的計(jì)算,希望該計(jì)算進(jìn)行的時(shí)候,程序還可以做其他事情; ? 軟件要能夠接受多個(gè)客戶的請(qǐng)求,而讓客戶感覺不出等待; ? 媒體播放器在播放歌曲的同時(shí)也能下載電影; ? 財(cái)務(wù)軟件在后臺(tái)進(jìn)行財(cái)務(wù)匯總的同時(shí)還能接受終端的請(qǐng)求;等等。當(dāng)程序加載到內(nèi)存時(shí),啟動(dòng)主線程。線程有創(chuàng)建、可運(yùn)行、運(yùn)行中、阻塞、死亡五種狀態(tài)。 線程的安全隱患可能出現(xiàn)在各個(gè)狀態(tài)。 所謂同步,就是在發(fā)出一個(gè)功能調(diào)用時(shí),在沒有得到結(jié)果之前,該調(diào)用就不返回,同時(shí)其它線程也不能調(diào)用這個(gè)方法。 觀察程序中的代碼行 1處的注釋,當(dāng)只剩下一張票時(shí),線程 1賣出了最后一張票,接著要運(yùn)行 ticketNum,但在 ticketNum還沒來得及運(yùn)行的時(shí)候,線程 2有可能搶占 CPU,來判斷當(dāng)前有無票可賣,此時(shí),由于線程 1還沒有將 ticketNum,當(dāng)然票數(shù)還是 1,線程 2判斷還可以買票,這樣,最后一張票賣出了兩次。 以上案例是多個(gè)線程消費(fèi)有限資源的情況,該情況下還有很多其他案例,如:多個(gè)線程,向有限空間寫數(shù)據(jù)時(shí): ?線程 1寫完數(shù)據(jù),空間滿了,但沒來得及告訴系統(tǒng); ?此時(shí)另一個(gè)線程搶占 CPU,也來寫,不知道空間已滿,造成溢出。這里以 Java語言為例,在 Java語言中, synchronized關(guān)鍵字可以解決這個(gè)問題,整個(gè)語法形式表現(xiàn)為: 注意, synchronized后的“同步鎖對(duì)象”,必須是可以被各個(gè)線程共享的,如 this、某個(gè)全局標(biāo)量等。 這說明程序運(yùn)行完全正常。 實(shí)際上,在 Java內(nèi),還可以直接把 synchronized關(guān)鍵字直接加在函數(shù)的定義上,這也是一種可以推薦的方法。如:某個(gè)科學(xué)計(jì)算系統(tǒng)中,線程 1負(fù)責(zé)計(jì)算11000各個(gè)數(shù)字的和 (暫且認(rèn)為它非常耗時(shí) ),線程 2負(fù)責(zé)得到這個(gè)結(jié)果并且寫入數(shù)據(jù)庫(kù)。運(yùn)行,控制臺(tái)打印如下: 很顯然,這個(gè)結(jié)果不是我們所需要的。一般的方法是,可以將該工作放在另一個(gè)線程中,這樣,既不會(huì)堵塞主程序,又能夠保證數(shù)據(jù)安全性。如果出現(xiàn)一種極端情況,一個(gè)線程等候另一個(gè)對(duì)象,而另一個(gè)對(duì)象又在等候下一個(gè)對(duì)象,以此類推。將 該代碼中,增加了一行:程序休眠 1000毫秒,讓另一個(gè)線程來搶占CPU。但可以通過 java thread dump來進(jìn)行判斷:一般情況下,當(dāng)死鎖發(fā)生時(shí), Java虛擬機(jī)處于掛起狀態(tài), thread dump可以給出靜態(tài)穩(wěn)定的信息,從操作系統(tǒng)上觀察,虛擬機(jī)的 CPU占用率為零,這時(shí)可以收集 thread dump,查找 waiting for monitor entry的線程,如果大量thread都在等待給同一個(gè)地址上鎖,說明很可能死鎖發(fā)生了。如: ? 數(shù)據(jù)庫(kù)死鎖。 線程控制安全 安全隱患 ? 線程控制主要是對(duì)線程生命周期的一些操作,如暫停、繼續(xù)、消亡等。如果它們想恢復(fù)目標(biāo)線程,同時(shí)又試圖使用任何一個(gè)鎖定的資源,就會(huì)造成死鎖。若標(biāo)志指出線程應(yīng)該掛起,便用 wait()命其進(jìn)入等待狀態(tài)。 進(jìn)程安全問題 由于進(jìn)程的獨(dú)立性,從應(yīng)用的角度講,進(jìn)程安全比線程安全更受重視,一般針對(duì)已有的進(jìn)程進(jìn)行安全方面的控制。 練習(xí) 1:將 。 8:編寫一個(gè)程序,每隔一秒,界面上方落下來一個(gè)字母。 2023年 1月 22日星期日 下午 1時(shí) 19分 21秒 13:19: ? 1比不了得就不比,得不到的就不要。 13:19:2113:19:2113:19Sunday, January 22, 2023 ? 1不知香積寺,數(shù)里入云峰。 13:19:2113:19:2113:191/22/2023 1:19:21 PM ? 1越是沒有本領(lǐng)的就越加自命不凡。 下午 1時(shí) 19分 21秒 下午 1時(shí) 19分 13:19: MOMODA POWERPOINT Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce id urna blandit, eleifend nulla ac, fringilla purus. Nulla iaculis tempor felis ut cursus. 感謝您的下載觀看 專家告訴 演講完畢,謝謝觀看! 。 13:19:2113:19:2113:19Sunday, January 22, 2023 ? 1知人者智,自知者明。 2023年 1月 22日星期日 下午 1時(shí) 19分 21秒 13:19: ? 1楚塞三湘接,荊門九派通。 2023年 1月 下午 1時(shí) 19分 :19January 22, 2023 ? 1行動(dòng)出成果,工作出財(cái)富。 ? 靜夜四無鄰,荒居舊業(yè)貧。 3:兩個(gè)線程,向空間有限的數(shù)組中寫數(shù)據(jù)。 不過,從開發(fā)者(編程)的角度,進(jìn)程的安全所需要考慮的問題和線程類似,但由于線程能夠共享進(jìn)程的資源,所以線程安全一般考慮的問題比進(jìn)程安全多。 3:不推薦使用 stop()來終止阻塞的線程,而應(yīng)換用由Thread提供的 interrupt()方法,以便中止并退出堵塞的代碼。屏幕上不斷打印歡迎信息,點(diǎn)擊按鈕,打印工作暫停;再點(diǎn)擊,繼續(xù)打印。 Java中提供了對(duì)線程生命周期進(jìn)行控制的函數(shù): ? stop():停止線程; ? suspend():暫停線程的運(yùn)行; ? resume():繼續(xù)線程的運(yùn)行: ? destroy():讓線程銷毀;等等。如果兩個(gè)或兩個(gè)以上的連接相互阻塞,產(chǎn)生死鎖。從技術(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1