[英]boost threads in c++
因此,我正在將代碼修改為多線程,我已經閱讀了幾篇文章,但沒有找到答案,我擁有Main,A類,B類,現在我想知道是否可以在b類中編程線程。當main調用class a時,它依次調用class b並在此處創建了踏面,而不是從subclass的main中創建。 謝謝。
主要
fr.place_sequences_to_nodes(&sequences,&leaf_nodes,reference_alignment,data_type);
int count = 1; root->name_internal_nodes(&count);
root->start_alignment(&mf);
ss.str(string());
ss << "Time main::align: "<< double(clock()-t_start)/CLOCKS_PER_SEC <<"\n";
Log_output::write_out(ss.str(),"time");
節點
void align_sequences(Model_factory *mf)
{
if(leaf) return;
left_child->align_sequences(mf);
right_child->align_sequences(mf);
this->align_sequences_this_node(mf);
}
您在這里混合使用類和線程,甚至可能使自己感到困惑...如果您當前的應用程序是單線程的,那么您將只有一個執行線程。 您可以創建更多的線程,從中創建它們的類的實例實際上並不重要(除了對該實例進行范圍界定之外,還可能使線程引用超出范圍,因此它們將不可控制)。 沒有一個例子,我不能說更多。
線程是獨立的,無論其他哪個線程創建它們。 他們都是一樣的。 線程A可以創建線程B,而線程B則創建線程C,該線程C將創建線程D,並且所有線程都是同一種線程。
您可以從任何位置創建它們,只需遵循文檔並記住警告(例如,對超出范圍的RAII線程對象使用scoped_ptr會導致該對象崩潰)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.