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

正文內容

生產者與消費者問題0-wenkub

2023-04-09 06:03:22 本頁面
 

【正文】 被生產出來。設計結論和心得(1)結論:在同一個進程地址空間內執(zhí)行的兩個線程。l 參數說明lpCriticalSection——指向臨界區(qū)對象的指針。l 參數說明lpCriticalSection——指向臨界區(qū)對象的指針。(6) ReleaseMutexl 功能——打開互斥鎖,即把互斥量加1。成功執(zhí)行則返回非0值l 格式BOOL ReleaseSemaphore(HANDLE hSemaphore,LONG lReleaseCount,LPLONG lppreviousCount )。(4) WaitForSingleObjectl 功能——使程序處于等待狀態(tài),直到信號量hHandle出現(即其值大于等于1)或超過規(guī)定的等待時間l 格式DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds)。lInitialCount——信號量的初始值。bInitialOwner——指示當前線程是否馬上擁有該互斥量(即馬上加鎖)。lpParamiter——定義一個給進程傳遞參數的指針。(1) CreateThreadl 功能——創(chuàng)建一個在調用進程的地址空間中執(zhí)行的線程l 格式HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParamiter,DWORD dwCreationFlags,Lpdword lpThread )。當消費者進程消費物品時,如果沒有滿的緩沖區(qū),那么消費者進程將被阻塞,直到新的物品被生產出來。要求設計在同一個進程地址空間內執(zhí)行的兩個進程。生產者進程生產物品,然后將物品放置在一個空緩沖區(qū)中供消費者進程消費。功能要求:根據進程同步機制,編寫一個解決上述問題的程序,可顯示緩沖池狀態(tài)、放數據、取數據等過程。l 參數說明lpThreadAttributes——指向一個LPSECURITY_ATTRIBUTES(新線程的安全性描述符)。dwCreationFlags——定義控制線程創(chuàng)建的附加標志。lpName——互斥量名稱。該值大于0,但小于lMaximumCount指定的最大值。l 參數說明hHandle——信號量指針。l 參數說明hSemaphore——信號量指針。成功調用則返回0l 格式BOOL ReleaseMutex(HANDLE hMutex)。(8) EnterCriticalSectionl 功能——等待指定臨界區(qū)對象的所有權l(xiāng) 格式VOID enterCriticalSection(LPCRITICAL_SECTION lpCriticalSection)。ProduceWait BufferWait ProductsConsume結束While produceWhile consumeBegin(1)所用技術:應用進程同步技術—信號量,以生產者/消費者模型為依據,在Windows 環(huán)境下創(chuàng)建一個控制臺進程,在該進程中創(chuàng)建n個線程模擬生產者和消費者,實現進程(線程)的同步與互斥。生產者線程生產物品,然后將物品放置在一個空緩沖區(qū)中供消費者線程消費。(2)心得:通過課程設計,進一步學習并理解生產者/消費者模型及其同步互斥規(guī)則,學習了解了windows同步對象及其特性,熟悉實驗環(huán)境,掌握有關API的使用方法,同時熟悉對vc的使用,提高了分析問題以及解決問題的能力,通過學習相關知識,擴展了知識面。 //是P還是C double delay。//全局變量的定義//臨界區(qū)對象的聲明,用于管理緩沖區(qū)的互斥訪問;CRITICAL_SECTION PC_Critical[MAX_BUFFER_NUM]。 //線程信息數組;HANDLE empty_semaphore。 //實際的緩沖區(qū)或者臨界區(qū)的數目;HANDLE h_Semaphore[MAX_THREAD_NUM]。int FindProducePositon()。 //初始化緩沖區(qū); for(int i=0。jMAX_THREAD_NUM。 Thread_Info[j].n_request = 0。PC_Critical[i])。 printf(輸入文件是:\n)。 inFile Thread_Info[n_Thread].delay。\n39。 (c)。j++){ int Temp_serial = Thread_Info[j].serial。 int Temp_request = Thread_Info[j].n_request。 coutendl。 //下面這個循環(huán)用線程的ID號來為相應生產線程的產品讀寫時所 //使用的同步信號量命名; for(j=0。 while(temp){ char c = (char)(temp%10)。 } //創(chuàng)建生產者和消費者線程; for(i =0。) h_Thread[i]= CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(Produce), amp。 } //主程序等待各個線程的動作結束; wait_for_all = WaitForMultipleObjects(n_Thread,h_Thread,TRUE,1)。}//確認是否還有對同一產品的消費請求未執(zhí)行;bool IfInOtherRequest(int req){ for(int i=0。j++) if(Thread_Info[i].thread_request[j] == req) return TRUE。in_Buffer_or_Critical。 } return EmptyPosition。i++) if(Buffer_Critical[i]==ProPos){ TempPos = i。 int m_serial。 //開始請求生產 printf(Producer %2d sends the produce require.\n,m_serial)。 ReleaseMutex(h_mutex)。 printf(Producer %2d finish producing :\n ,m_serial)。 int m_serial,m_requestNum。 m_requestNum = ((ThreadInfo *)(p))n_request。 Sleep(m_delay)。 //如果對應生產者沒有生產,則等待;如果生產了,允許的消費者數目1;實現了讀寫同步; wait_for_semaphore=WaitForSingleObject(h_Semaphore[m_thread_request[i]],1)。 printf(Consumer%2d begin to consume %2d product \n,m_serial,m_thread_request[i])。 printf( position[ %2d ]:%3d \n ,BufferPos,Buffer_Critical[BufferPos])。PC_Critical[BufferPos])。 最后說明一下執(zhí)行的流程。在該信號處理程序執(zhí)行完后,通過 ret 指令,CPU 會把控制權移交給 sa_restorer 所指向的恢復程序去執(zhí)行。接口說明以及局部數據結構 程序涉及內核中所有有關信號處理的函數。例如,用戶在終端鍵盤上鍵入 ctrlC 組合鍵來終止一個程序的執(zhí)行。本程序給出了設置和獲取進程信號阻塞碼(屏蔽碼)系統(tǒng)調用函數 sys_ssetmask()和 sys_sgetmask()、信號處理系統(tǒng)調用 sys_singal()(即傳統(tǒng)信號處理函數 signal())、修改進程在收到特定信號時所采取的行動的系統(tǒng)調用 sys_sigaction()(既可靠信號處理函數 sigaction())以及在系統(tǒng)調用中斷處理程序中處理信號的函數 do_signal()。但 signal()就是內核操作上述傳統(tǒng)信號處理的方式,在某些特殊時刻可能會造成信號丟失。新的信號處理句柄是一個無返回值且具有一個整型參數的函數指針,該整型參數用于當指定信號發(fā)生時內核將其傳遞給處理句柄。指針值分別是 0 和 1,這兩個指針值邏輯上講是實際程序中不可能出現的函數地址值。另外,當程序fork()一個子進程時,子進程會繼承父進程的信號處理方式(信號屏蔽碼)。 { signal(SIGINT, sig_handler)。 ... }sigaction()函數采用了 sigaction 數據結構來保存指定信號的信息,它是一種可靠的內核處理信號的機制,它可以讓我們方便地查看或修改指定信號的處理句柄。當參數 act
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1