
現在赤黒木の改良を考えているのですが、赤黒木におけるノードの挿入操作は、ノードが多くなるとリバランスに非常に時間がかかります。
そこで、プログラム内で挿入操作が必要となった時に、挿入操作を行うスレッド(もしくはプロセス)を新規で作成し、挿入に関してはそのスレッド、その他は元のスレッドが実行というように並列で行いたいのですが、どのようにスレッドを作れば良いか分からない為、教えてください。
挿入における排他制御(フラグ管理)などのアルゴリズムの部分は勉強したので、スレッドの作成方法が知りたいです。また、再帰を頻繁に行うプログラムなので、スレッド作成数の上限も設定したいです。
参考にしている論文
http://uc.alerta.cl/xmlui/bitstream/handle/12345 …
なお、開発環境はVisual C++ 2012で、OpenMPも使用できます。ただオブジェクト指向に慣れていないため、ほとんどC言語で書いています。
以下に、簡単なソース、及び図を載せますので、お手数をおかけしますがアドバイスをいただけないでしょうか?
(簡単なソース)
main(){
x = f1();
}
int f1(){
if() y = f1(); //再帰を頻繁に行います
if() insert(); //挿入はスレッドを新規に作成し、元のスレッドと並列で実行(複数の挿入スレッドが同時に存在しうる)
return y;
}
p.s.
同じ内容の質問をyahoo知恵袋でも出しているのですが、回答してくれた方への質問に答えたりが出来ない為、こちらに転載させていただきました。
また、CreateThread()で実現できそうというアドバイスも頂けたのですが、もう少し具体的な実装方法が調べても分からなかったので、その点に関してのアドバイスでも十分ですので、よろしくお願い致します。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
TreeViewで複数ノードの選択は...
-
ノードとは
-
TreeView の初期表示について
-
ツリーでのアイコンの設定
-
XMLへDOMでタグの追加
-
昔Winnyってありましたけど、あ...
-
あるノードリストに、特定の名...
-
ツリービューのノードをダブル...
-
バッチファイルでテキストファ...
-
xmlファイルが上手にHTMLに変換...
-
DOSコマンドラインからxmlファ...
-
ノベルゲームを作る場合、
-
動的な構造体配列の初期化
-
Excel(2007以降)をxml形式に変...
-
複数のXMLファイルからデータを...
-
ExcelVBAで書き出した文字が化ける
-
DTDファイルをクラスパスから読...
-
127.0.0.1とlocalhost
-
XMLを出力する時のエラー原因
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
昔Winnyってありましたけど、あ...
-
C#でTreeViewのCheckBoxのサイ...
-
ノードとは
-
ツリービューのノードをダブル...
-
同じタグ名の項目取得
-
あるノードリストに、特定の名...
-
TreeView の初期表示について
-
TreeVIewのノード名を編集する...
-
複数のマックPCによる数値計算...
-
TreeViewで複数ノードの選択は...
-
C# TreeView 効率良いノード追...
-
TreeViewに重複する値をセット
-
VB2005 TreeViewの任意ノード選択
-
Ciscoルータやスイッチを使用し...
-
各ノードの行数取得
-
2分探索木の高さを求めるプロ...
-
4色定理はなぜグラフ理論で証...
おすすめ情報