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

正文內(nèi)容

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

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

下一頁面
  

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