[英]boost::thread segmentation fault
我有Runnable課。 在其中,我使用以下函數來啟動新線程:
start()
{
status_ = RUNNING;
mythread_ = boost::thread(boost::ref(*this)); // Line 2
}
我有從Runnable派生的Controller類。 我想使用start()函數為Controller創建線程
因此,在控制器啟動功能中,
我用:
controller_->start()
創建一個新線程;
但這最終導致2號線出現分段錯誤。
知道發生了什么錯誤嗎?
我記得有時不向編譯器指定線程庫會導致segfault。 如果使用的是UNIX,請嘗試將-pthread參數添加到編譯器。 似乎在最新的linux / boost / gcc中不再需要它了。
該對象的地址只能從成員函數作為內this
指針的大多數使用this
是隱含的。
或者,您可以使start()
函數成為類的friend
,並將對象的引用直接發送到新線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.