第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

假設(shè)總共有5個線程,其中4個在read中,另一個正在處理任務(wù)。如下怎么實(shí)現(xiàn)

假設(shè)總共有5個線程,其中4個在read中,另一個正在處理任務(wù)。如下怎么實(shí)現(xiàn)

慕標(biāo)琳琳 2023-03-03 18:14:56
 這時候需要停止系統(tǒng)做更新操作等,我希望程序的停止是在這個線程任務(wù)處理完成后才正常停止。如何做?謝謝啦~~~~pthread_cancel只要發(fā)送信號到線程了,線程接收到就退出了,那么就會造成有些任務(wù)只處理到一半。
查看完整描述

2 回答

?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個贊

可以手動設(shè)置線程退出的時機(jī)。通過 int pthread_setcanceltype(int type, int *oldtype)設(shè)置本線程取消動作的執(zhí)行時機(jī),type由兩種取值:PTHREAD_CANCEL_DEFFERED和 PTHREAD_CANCEL_ASYNCHRONOUS,僅當(dāng)Cancel狀態(tài)為Enable時有效,分別表示收到信號后繼續(xù)運(yùn)行至下一個取消點(diǎn)再退出和 立即執(zhí)行取消動作(退出);oldtype如果不為NULL則存入運(yùn)來的取消動作類型值。此函數(shù)應(yīng)該在線程開始時執(zhí)行,若線程內(nèi)部有任何資源申請等操作,應(yīng)該選擇 PTHREAD_CANCEL_DEFFERED 的設(shè)定,然后在退出點(diǎn)(pthread_testcancel 用于定義退出點(diǎn))進(jìn)行線程退出。void pthread_testcancel(void)檢查本線程是否處于Canceld狀態(tài),如果是,則進(jìn)行取消動作,否則直接返回。 此函數(shù)在線程內(nèi)執(zhí)行,執(zhí)行的位置就是線程退出的位置,在執(zhí)行此函數(shù)以前,線程內(nèi)部的相關(guān)資源申請一定要釋放掉,他很容易造成內(nèi)存泄露。

查看完整回答
反對 回復(fù) 2023-03-06
?
米脂

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個贊

我大致理解你的運(yùn)用場景了。一般通用的做法是這樣的:在新線程的入口程序里面通常會有如下代碼段:while(sys_state != SYS_SHUT_DOWN){ if(hasJobs()) { //here process you jobs } else { sleep(nnnnn);//等著任務(wù)的到來 }}接下來的代碼就是函數(shù)返回及線程退出之前的資源回收了一般都不會主動使用thread_cancel來結(jié)束線程。線程執(zhí)行的代碼段結(jié)束了,它自己會退出的,你只需要考慮什么時候讓它的代碼段結(jié)束就行了。

查看完整回答
反對 回復(fù) 2023-03-06
  • 2 回答
  • 0 關(guān)注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號