簡體   English   中英

boost ::線程分段錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM