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

正文內(nèi)容

第11章多線程編程(編輯修改稿)

2024-10-27 15:11 本頁面
 

【文章內(nèi)容簡介】 ket:%d\n,tickets)。 ? tickets。 ? } ? else ? { ? return 0。 ? } ? } 線程之間切換 —— 時間片 ? 本章的開始曾經(jīng)介紹過,單 CPU平臺下某一時刻只能有一個線程在運行。但是多線程程序的運行與并行運行相似。這是因為操作系統(tǒng)將 CPU的運行時間分成多個小塊,每個小塊被稱為一個時間片。每個線程都運行一個時間片,當(dāng)時間片限定的時間到,還在運行的線程就將 CPU交給其他線程使用,如圖所示, 假設(shè)時間片大小為 ,則線程 1運行了 ,將 CPU交給線程 2使用。當(dāng)線程 2運行 ,再將 CPU交給線程 3使用,依此類推,直到所有線程都運行結(jié)束。由于時間片是如此的小,以至于人們無法感覺到,所以多個線程看似在 “ 并行 ” 地運行。 使用互斥對象來同步線程 ? 前面說過,在多線程程序設(shè)計過程中,對于臨界資源的讀寫需要進(jìn)行保護。也就是說,一個線程正在對這個臨界資源進(jìn)行讀寫時,其他線程就不能對其進(jìn)行讀寫,這個過程叫做線程的同步。線程同步是通過一些操作系統(tǒng)的內(nèi)核對象來實現(xiàn)的。通常,內(nèi)核對象有事件對象、互斥對象等,其功能就是為了對臨界資源進(jìn)行保護。這里先介紹一下如何使用互斥對象。 ? API函數(shù) CreateMutex可以用來創(chuàng)建一個互斥對象,其原型如下。 ? HANDLE CreateMutex( ? LPSECURITY_ATTRIBUTES lpMutexAttributes, ? BOOL bInitialOwner, ? LPCTSTR lpName ? )。 示例 —— 修改多線程例子,使用互斥對象對其進(jìn)行同步 ? 下面在飛機售票系統(tǒng)的原代碼中添加一些代碼,使一個線程在操作臨界資源時,其他線程不能操作。具體代碼如下。 ? // 票系統(tǒng) 修改以后 ? include ? include ? include ? DWORD WINAPI Shop1(LPVOID lpParameter)。 示例 —— 使用命名互斥對象判斷程序是否多次運行 ? 前面一節(jié)講述了如何使用互斥對象來進(jìn)行線程同步,使用 API函數(shù) CreateMutex可以創(chuàng)建一個互斥對象,但是第 3個參數(shù)使用的是 NULL,表示不起名字。本節(jié)通過一個例子,告訴讀者互斥對象的另外一個用
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1