CBL_THREAD_CREATE

指定したエントリ ポイントからスレッドを作成します。

構文:

call "CBL_THREAD_CREATE" using by reference entry-name
                         by reference       thread-param 
                         by value           param-size
                         by value           flags
                         by value           priority
                         by value           stack-size
                         by reference       thread-id

パラメーター:

  呼び出しプロトタイプ使用時 (「説明の読み方」を参照) PIC
entry-name pic x(n) 空白終了または null 終了 pic x(n) 空白終了または null 終了
thread-param pic x(n) 空白終了または null 終了 任意のデータ項目
param-size cblt-os-size pic x(4) comp-5

または

pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)

flags cblt-os-flags pic x(4) comp-5

または

pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)

priority cblt-sx4-comp5 pic s9(9) comp-5
stack-size cblt-os-size pic x(4) comp-5

または

pic x(8) comp-5 (64 ビットのネイティブ プログラムのみ)

thread-id cblt-pointer USAGE POINTER

入力パラメーター:

entry-name
スレッドの空白文字または null で終了する名前。
thread-param
新しいスレッドに渡すパラメーター。
param-size
次のいずれかの値に設定します。
0 データ値をコピーすることなく、thread-param のアドレスのみが新しいスレッドのエントリ ポイントにパラメーターとして渡されます
>0 thread-param の値が param-size の長さだけコピーされ、このコピー領域のアドレスが新しいスレッドに渡されます。CBL_THREAD_CREATE の呼び出しの直後に作成元のスレッドによって thread-param が変更または割り当て解除された場合でも、作成されたスレッドに対しては thread-param の値はそのままになります
flags
数値。次のようにビットを設定できます。
ビット 0
0 スレッドが終了したら直ちにスレッドをデタッチします
1 すぐにはスレッドをデタッチしません。スレッドが終了していても、そのリソースはスレッドがデタッチされるまで解放されません
ビット 1
0 スレッドの優先度は相対値 (-100 から +100) です
1 スレッドの優先度は絶対値 (0 から 100) です
ビット 2
0 スレッドが終了した際にこのスレッドによってロックされているモニターまたはミューテックスがあると、ランタイム システム エラーが発生します
1 スレッドが終了した際にモニターまたはミューテックスがロックされていても、エラーは発生しません
ビット 3
0 作成したスレッドをアクティブにする
1 作成したスレッドをサスペンド状態にする
制約事項: これは JVM 環境では非推奨です。
ビット 4
制約事項: このビットは JVM COBOL ではサポートされていません。
0 マルチスレッド アパートメント モデル (MTA)
1 シングルスレッド アパートメント モデル (STA)
上記以外のビット
予約済み
priority
優先度を設定します。通常、優先度は、-100 から +100 の範囲内の値であり、現在のスレッドの優先度を基準とします。-1 と +1 は、呼び出し元よりも低いまたは高い優先度をスレッドに設定する (呼び出し元の優先度がすでに最低値または最高値である場合を除く) 最小単位の増減値です。指定した負の値または正の値によって、スレッドの優先度が限度を下回るまたは上回る場合は、最低値または最高値が使用されます。flags のビット 1 が 1 に設定されている場合、優先度は 0 から 100 の絶対値になります。
stack-size
新しいスレッドに割り当てるスタックのサイズをランタイム システムに通知します。値が 0 の場合、有効なデフォルト値が使用されます。このパラメーターが無効と見なされた場合は、無視されるか、無効な値が指定されたことを示すエラーが返されます。

出力パラメーター:

thread-id
スレッド識別子。
return-code
成否を示す値。「スレッド制御ルーチンの RETURN-CODE 値」を参照してください。

説明:

指定したエントリ ポイントは任意の言語で実装できます。

呼び出しが成功し、新しいスレッドが作成されると、そのスレッド識別子が thread-id に格納され、RETURN-CODE が 0 に設定されます。これは、スレッドが作成されてデタッチされる場合にも当てはまります。ただし、この場合、呼び出し元は、他の呼び出しで thread-id を使用する前に新しいスレッドがまだ存在することを必ず確認する必要があります。

呼び出しが失敗した場合、thread-id は NULL に設定され、エラー番号が RETURN-CODE に設定されます。