簡體   English   中英

提高C ++中的線程

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

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