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

正文內(nèi)容

03講_線程進程安全-文庫吧在線文庫

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

下一頁面
  

【正文】 發(fā)執(zhí)行。為了表達這個問題,我們用一個案例來說明。這就給程序的功能形成了巨大的阻礙。 線程機制和生命周期 每個程序至少自動擁有一個線程,稱為主線程。用線程的狀態(tài)( state)表明線程處在生命周期的哪個階段。 5:死亡狀態(tài):線程結(jié)束。本節(jié)基于一個簡單的案例,針對線程的同步問題進行闡述。但是它是很不安全的,并且這種不安全性很難發(fā)現(xiàn),會給項目后期維護帶來巨大的代價。這種工作往往給維護帶來了巨大的代價。 不同語言中,同步代碼段的實現(xiàn)模型類似,只是表達方式有些不同。 運行,可以得到如下效果。我們要盡量控制線程同步的代碼段范圍,理論上說,同步的代碼段范圍越小,段數(shù)越少越好,因此在某些情況下,推薦將小的同步代碼段合并為大的同步代碼段。 案例分析 給出一個案例:線程 1負責完成一個復(fù)雜運算(比較耗時),線程 2負責得到結(jié)果,并將結(jié)果進行下一步處理。為了解釋這個問題,將 該代碼中,增加了一行:程序休眠 1毫秒,讓另一個線程來搶占 CPU。如果 cal()函數(shù)耗時較長,程序?qū)⒁恢钡却?。這可以稱為“線程正在等待一個對象資源”。為了模擬這個過程,我們在程序中增加讓其休眠的代碼,好讓另一個線程來搶占 CPU。 以 Java為例, Java并不提供對死鎖的檢測機制。 ? 很多軟件產(chǎn)品內(nèi)置了死鎖解決策略,可做參考。此時可以增加連接池的大小或者重構(gòu)代碼,以便單個線程不需要同時使用很多資源。此時,其他任何線程都不能訪問鎖定的資源,除非被“掛起”的線程恢復(fù)運行。 2:將線程暫?;蚶^續(xù),不使用 suspend()和 resume(),可在 Thread類中置入一個標志,指出線程應(yīng)該活動還是掛起。進程也有運行、阻塞、就緒三種狀態(tài),并隨一定條件而相互轉(zhuǎn)化。最后講解了進程安全。 7:很多語言中提供了定時器 (Timer),讓某個功能定時執(zhí)行,該功能也可以用線程實現(xiàn),比較兩種方法的優(yōu)劣。 :19:2113:19:21January 22, 2023 ? 1他鄉(xiāng)生白發(fā),舊國見青山。 :19:2113:19Jan2322Jan23 ? 1世間成事,不求其絕對圓滿,留一份不足,可得無限完美。 , January 22, 2023 ? 閱讀一切好書如同和過去最杰出的人談話。 2023年 1月 22日星期日 1時 19分 21秒 13:19:2122 January 2023 ? 1一個人即使已登上頂峰,也仍要自強不息。勝人者有力,自勝者強。 。 2023年 1月 22日星期日 1時 19分 21秒 13:19:2122 January 2023 ? 1做前,能夠環(huán)視四周;做時,你只能或者最好沿著以腳為起點的射線向前。 , January 22, 2023 ? 雨中黃葉樹,燈下白頭人。寫一段代碼,具有數(shù)組溢出的安全隱患,并提出解決方案。不過,對于開發(fā)多個進程能夠運行的系統(tǒng)軟件(如操作系統(tǒng)),進程的安全就應(yīng)該重點考慮了。 進程安全 進程概述 進程是一個執(zhí)行中的程序,對每一個進程來說,都有自己獨立的一片內(nèi)存空間和一組系統(tǒng)資源。 傳統(tǒng)代碼如 如果點擊“暫?!卑粹o,則暫停打??;再點擊,繼續(xù)打印。 ? 線程生命周期中的安全問題主要體現(xiàn)在: ? 線程暫停或者終止時,可能對某些資源的鎖并沒有釋放,它所保持的任何資源都會保持鎖定狀態(tài); ? 線程暫停之后,我們無法預(yù)計它什么時候會繼續(xù) (一般和用戶操作有關(guān) ),如果對某個資源的鎖長期被保持,其他線程在任何時候都無法再次訪問該資源,極有可能造成死鎖。該情況下,一般會強制銷毀一個連接(通常是使用最少的連接),并回滾其事務(wù)。 ? 可以逐個撤消陷于死鎖的進程,直到死鎖不存在。 死鎖是一個很重要的問題,它能導(dǎo)致整個應(yīng)用程序慢慢終止,尤其是當開發(fā)人員不熟悉如何分析死鎖環(huán)境的時候,還很難被分離和修復(fù)。 在這里給出一個死鎖的案例,如代碼 這段程序也貌似沒有問題。 產(chǎn)生死鎖的四個必要條件是: ? 互斥條件:資源每次只能被一個線程使用。對于該問題,不同語言解決方法類似。首先用傳統(tǒng)線程方法來編寫這段代碼,代碼如 。所以,在實際開發(fā)的過程中,要十分小心,因為過多的線程等待可能造成系統(tǒng)性能的下降,甚至造成死鎖。如果其他線程想要搶占 CPU,先要檢查 this上是否有這個標記。其他線程要想搶占 CPU運行這段代碼,必須在“同步鎖對象”上先檢查該標記,只有標記處于消除狀態(tài),才能搶占 CPU。哪個線程獲取了這把鑰匙,才有權(quán)利訪問該共享資源。 將 : 該代碼中,增加了一行:程序休眠 1000毫秒,讓另一個線程來搶占 CPU。以最后剩下 3張票為例。 多線程的安全問題比較復(fù)雜,解決方法繁多,在這里我們闡述幾個比較典型的安全問題。該線程僅僅是一個空對象,系統(tǒng)沒有分配資源。由于時間片的輪轉(zhuǎn)非??欤脩舾杏X不出各個線程搶占 CPU的過程,看起來好像計算機在“同時”做好幾件事情。通俗地說,進程就是一個程序,線程是這個程序能夠同時做的各件事情。 }catch(Exception ex){} } (其他工作 )。 一般說來,線程的安全性主要來源于其運行的并發(fā)性和對資源的共享性;進程的安全性主要在應(yīng)用級別,在于其對系統(tǒng)的威脅性,不過對于系統(tǒng)軟件的開發(fā)者,進程安全的考慮需要更加深入。進程是程序在計算機上的一次執(zhí)行活動。比如,一個在線播放軟件,在播放歌曲的同時還可以進行下載,就可認為這兩件工作由不同的線程完成。比如,需要在控制臺上每隔 1秒鐘打印一個歡迎信息。 在實際應(yīng)用開發(fā)的過程中 , 經(jīng)常會出現(xiàn)一個程序看起來同時作好幾件事情的情況 , 如 ?? 程序進行一個用時較長的計算
點擊復(fù)制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1