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

正文內(nèi)容

03講_線程進(jìn)程安全-文庫(kù)吧在線文庫(kù)

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

下一頁面
  

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