亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 3688 | 回復(fù): 13
打印 上一主題 下一主題

[函數(shù)] 有木有辦法從A線程里找到B線程的pthread_t? [復(fù)制鏈接]

論壇徽章:
5
雙魚座
日期:2013-11-26 17:56:26獅子座
日期:2013-11-29 15:41:32處女座
日期:2014-02-21 11:59:07技術(shù)圖書徽章
日期:2014-03-06 15:33:53技術(shù)圖書徽章
日期:2014-03-06 15:39:30
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-07-22 01:52 |只看該作者 |倒序瀏覽
我想從A線程調(diào)用pthread_cancel取消掉B線程,問題是B線程是第三方庫里面created出來的,所以通過pthread_self()或者create thread得到都不可能,gettid這個得到的id不是pthread_t的id,所以請教各位大大有木有什么其他方法?

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
2 [報告]
發(fā)表于 2014-07-22 08:30 |只看該作者
pthread_cancel 只有非常牛逼的人才用他,你懂的。安卓的pthread,這個函數(shù)直接就不存在。

論壇徽章:
0
3 [報告]
發(fā)表于 2014-07-22 08:52 |只看該作者
本帖最后由 anders0913 于 2014-07-22 08:53 編輯

對于線程,最好的實現(xiàn)是讓它自己退出。也就是說,你可以讓A線程改變一個變量,然后B線程檢測變量值,自行判斷是否退出。說成消息也行,也就是讓消息驅(qū)動。

論壇徽章:
6
酉雞
日期:2013-11-04 15:30:02巳蛇
日期:2014-01-23 10:36:23雙魚座
日期:2014-01-23 13:08:332015亞冠之鹿島鹿角
日期:2015-09-03 14:36:002015亞冠之武里南聯(lián)
日期:2015-09-18 10:48:1315-16賽季CBA聯(lián)賽之山西
日期:2016-05-05 00:05:33
4 [報告]
發(fā)表于 2014-07-22 09:33 |只看該作者
強制進(jìn)程退出很可能導(dǎo)致不可預(yù)見的錯誤  

3#的方法就很實用

論壇徽章:
5
雙魚座
日期:2013-11-26 17:56:26獅子座
日期:2013-11-29 15:41:32處女座
日期:2014-02-21 11:59:07技術(shù)圖書徽章
日期:2014-03-06 15:33:53技術(shù)圖書徽章
日期:2014-03-06 15:39:30
5 [報告]
發(fā)表于 2014-07-22 09:47 |只看該作者
回復(fù) 3# anders0913


    我有3個線程,2個線程都是第三方驅(qū)動的,就是調(diào)用一個第三方的庫,他自己就出來一個線程了,你說的設(shè)置變量怎么弄呢?其中一個線程是自己創(chuàng)造的,可以自己控制,讓這個線程退出是可以的,但是光讓它退出沒用,要其他2個線程也一起退出程序才可以退出額。

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
6 [報告]
發(fā)表于 2014-07-22 09:51 |只看該作者
bottles 發(fā)表于 2014-07-22 09:47
回復(fù) 3# anders0913


難道第三方庫沒有提供停止線程的接口?

論壇徽章:
5
雙魚座
日期:2013-11-26 17:56:26獅子座
日期:2013-11-29 15:41:32處女座
日期:2014-02-21 11:59:07技術(shù)圖書徽章
日期:2014-03-06 15:33:53技術(shù)圖書徽章
日期:2014-03-06 15:39:30
7 [報告]
發(fā)表于 2014-07-22 10:00 |只看該作者
回復(fù) 6# hellioncu


    額。。這個好像也是一條路額。。我之前一直考慮怎么把他們的tid找到,因為那些線程是在底層調(diào)用的,要找到有沒有這種停止的接口可能不是一件容易的事情額,不過我可以試著銷毀他們一下看看。

論壇徽章:
0
8 [報告]
發(fā)表于 2014-07-22 14:16 |只看該作者
回復(fù) 5# bottles


    我不了解你場景,但我想,你既然已經(jīng)讓自己的線程退出了,是不是整個process也要退出了?如果是的,就強制整個進(jìn)程退出即可,至于庫啟動的2個線程,就不用自己管了,讓process退出時候自動清理掉好了。

論壇徽章:
5
雙魚座
日期:2013-11-26 17:56:26獅子座
日期:2013-11-29 15:41:32處女座
日期:2014-02-21 11:59:07技術(shù)圖書徽章
日期:2014-03-06 15:33:53技術(shù)圖書徽章
日期:2014-03-06 15:39:30
9 [報告]
發(fā)表于 2014-07-22 15:35 |只看該作者
本帖最后由 bottles 于 2014-07-22 15:36 編輯

回復(fù) 8# anders0913


    關(guān)鍵就系,我自己可以控制的那個線程退出了,但是程序還在運行。。然后我想通過調(diào)用一些銷毀函數(shù)銷毀掉其他線程,然后程序就一直掛在那里了,gdb 了一下發(fā)現(xiàn)掛在__lll_lock_wait () from /lib64/libpthread.so.0這里面了。

論壇徽章:
5
雙魚座
日期:2013-11-26 17:56:26獅子座
日期:2013-11-29 15:41:32處女座
日期:2014-02-21 11:59:07技術(shù)圖書徽章
日期:2014-03-06 15:33:53技術(shù)圖書徽章
日期:2014-03-06 15:39:30
10 [報告]
發(fā)表于 2014-07-22 17:03 |只看該作者
回復(fù) 8# anders0913


    原來是主線程卡住了,我之后調(diào)用pthread_exit主線程就能退出了,我一直以為這個函數(shù)是線程退出的時候默認(rèn)調(diào)用的額?只是這樣做不管其他線程會不會不安全額?
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP