本文主要介紹flash的作品(flash做出的閃光點是什么),下面一起看看flash的作品(flash做出的閃光點是什么)相關(guān)資訊。
1.艾倫在一次粒子加速器爆炸事故中獲得了極速移動的超能力,因此他開始成為一名超級英雄 閃電俠 。以此類推,cpu是計算機的核心部件,負(fù)責(zé)讀取和執(zhí)行指令,每秒可執(zhí)行數(shù)十億條指令!it 它實際上比閃光燈快得多。
蕭flash 美國聯(lián)邦調(diào)查局很快發(fā)現(xiàn)了他的能力。為了用好小閃,fbi雇傭小閃為其特別行動組a執(zhí)行任務(wù)。
據(jù)說是特別行動隊。事實上,除了肖驍,只有一個a博士。肖驍 的日常工作是讓博士a 的指示,并執(zhí)行它們。這是早期的計算機單進程模型。
2.但畢竟a博士收集信息和得到正確的指令是需要時間的,而蕭珊執(zhí)行指令的速度又太快,所以在fbi高層眼里,a博士總是忙忙碌碌,蕭珊整天樂此不疲。
為了提高小霜的利用率,fbi開始在特別行動組辦公室的樓下設(shè)立另一個特別行動組b。
這個設(shè)置的過程就是編碼,編碼的結(jié)果就是得到一個可以完成特定功能的程序。
很快,特別行動小組b在的唯一控制下開始秘密行動,這就是進程的誕生,進程其實就是一個運行的程序。現(xiàn)在fbi特別行動組進入了多流程時代。
雖然都是fbi的特別行動組,但除非有特殊情況,a和b一般都是置身事外的。他們都認(rèn)為自己壟斷了fbi的所有資源,但這其實只是fbi的一個伎倆。
背后的含義是每個進程使用完全相同的虛擬地址空間,但是通過操作系統(tǒng)和硬件mmu的配合,映射到不同的物理地址空間。
不同的進程有各自獨立的物理內(nèi)存空間,特別行動組a和b之間的通信是進程間通信(ipc)。
小閃雖然快,但還是不可能同時執(zhí)行a博士和的指令,就像人可以 不要在向右看的時候向左看。
a博士和經(jīng)常為此打架,大家都想占用小閃更多的時間來完成他的kpi。
fbi領(lǐng)導(dǎo)想了一個辦法,成立一個新的調(diào)度小組,把小閃的使用時間分配給各個小組。一開始調(diào)度小組會給每個進程分配一個相等的短時間,然后每個小組輪流占用flash執(zhí)行相應(yīng)時間的任務(wù)。這是cpu的時間片分配。
如果蕭閃還沒 t在這么短的時間內(nèi)執(zhí)行完了,必須停止,但是要保存執(zhí)行進度,下次從末尾繼續(xù)做。這是cpu的上下文切換。
就這樣,a博士和的kpi完成了,肖山也忙起來了。說我忙,其實花在指令執(zhí)行上的時間并不多?;旧衔以趦山M之間反復(fù)跳來跳去,笑笑 的工作還是很舒服的。5.兩個博士嫉妒蕭珊,還有很多空閑時間。其實他們很有默契地發(fā)起一個招聘公告,廣招天下人才。勢必會找到更多的事情讓蕭珊去做。
很快,行動組的成員越來越多,每個成員都有不同的任務(wù)。比如有的人負(fù)責(zé)咨詢信息,有的人負(fù)責(zé)接收信息...群體中的所有成員一起工作,以實現(xiàn)特殊群體的共同目標(biāo)。從此進入了多線程時代。
線程就像一個組的成員,一個進程可以包含許多線程。
流程是資源分配的基本單位,比如fbi給特殊群體分配辦公空間。
線程是cpu調(diào)度的基本單位。比如flash需要執(zhí)行每個團隊成員的指令。
6.成員多了,管理成了新問題。如果每個成員只是自言自語,而不是。;根本不注重團隊合作,很容易引起團隊內(nèi)部矛盾。
為此,fbi制定了幾個策略。對應(yīng)于線程的同步。
7.行動組里不同的資源共享程度不同。比如有人在用廁所,別人只能等,沖進去就會發(fā)生。這意味著進程中的一些共享內(nèi)存一次只能由一個線程使用,其他線程必須等待該線程使用完才能繼續(xù)使用。
防止別人進入的一個簡單方法就是給廁所加一把鎖。第一,占廁所的人鎖。其他人看到鎖后,在門口排隊,直到被占用的線程解鎖。這種策略在英語中被稱為互斥。
8.與廁所不同,會議室可以允許10個人同時進入。如果人數(shù)超過10人,多出的人只能排隊等候,其他人可以進入會議室,除非有人離開一個房間。
為了解決這個問題,fbi在會議室門口掛了10把鑰匙。每個人在進入會議室前都要拿一把鑰匙,出來時要放回原處。如果遲到者發(fā)現(xiàn)沒有鑰匙,就在會議室門口等著。這種策略被稱為信號量?;コ怄i只允許一個線程進入臨界區(qū),信號量允許多個線程同時進入臨界區(qū)。
9.有時候,行動組的一些任務(wù)很復(fù)雜,需要流水線作業(yè)。上游人員完成后,將結(jié)果交付給下游人員進行處理,這是典型的生產(chǎn)者-消費者模型。
如果生產(chǎn)者生產(chǎn)太快,我們可以適當(dāng)讓上游人員停工,等待一定的時機喚醒生產(chǎn)者;另一方面,如果消費者消費過快,可以適當(dāng)讓下游人員停止工作,等到一定時間再叫醒消費者。
這個策略叫做 條件變量和,而其背后的原理是在等待某些條件的同時讓線程進入睡眠狀態(tài),一旦條件滿足就喚醒。
10.最后,以行動組的投影儀為例。很多成員喜歡在休息時間坐在一起用投影儀看一部電影,類似于多線程閱讀同一資源,不管有多少人在看。電影里不會有問題。
但是在別人看電影的時候有人要升級放映機的操作系統(tǒng),肯定會影響別人的觀影體驗;相反,在升級操作系統(tǒng)時,有人要看電影,也會給升級人員帶來麻煩。
這時候可以制定一個策略,在看電影的時候,歡迎其他觀影者隨時使用;升級時,禁止任何查看者和任何其他升級人員使用。
這種方法被稱為 讀寫鎖 ,也叫 共享-排他鎖 。 觀看 對應(yīng)于線程的讀操作,而 升級 對應(yīng)于線程的寫操作。具體來說,一般有兩種情況:
如果讀寫鎖處于寫鎖定狀態(tài),所有試圖鎖定它的線程在解鎖之前都會被阻塞;如果讀寫鎖處于讀鎖狀態(tài),所有試圖以讀模式鎖定的線程都可以獲得訪問權(quán),但以寫模式鎖定的線程會阻塞;結(jié)束!
標(biāo)簽:
線程組
了解更多flash的作品(flash做出的閃光點是什么)相關(guān)內(nèi)容請關(guān)注本站點。