手続きポインターからスレッドを作成します。
 
  
 
	 構文:
 
		 
		call "CBL_THREAD_CREATE_P" using  by value entry-point
                           by reference    thread-param
                           by value        param-size
                           by value        flags
                           by value        priority
                           by value        stack-size
                           by reference    thread-id
 
	  
 
	 パラメーター:
 
		 
		 
		
 
			  
			  
			  
			  
				 
				  |   | 
 
				  呼び出しプロトタイプ使用時 (「説明の読み方」を参照) | 
 
				  PIC | 
 
				
 
			 
 
			  
				 
				  | entry-point | 
 
				  cblt-ppointer | 
 
				  USAGE PROCEDURE-POINTER | 
 
				
 
				 
				  | 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-point
 
 
			 - 実行するプログラムの適切なエントリ ポイントに設定された手続きポインター。
 
 
		   
		   
			 - 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 | 
 
								  スレッドの優先度は絶対値 (0 から 100) です | 
 
								
 
								 
								  | 1 | 
 
								  スレッドの優先度は相対値 (-100 から +100) です | 
 
								
 
							 
 
						  
 
 
					  
 
				   
				   
					 - ビット 2
 
 
					 -  
						
 
							  
							  
							  
								 
								  | 0 | 
 
								  スレッドが終了した際にこのスレッドによってロックされているモニターまたはミューテックスがあると、ランタイム システム エラーが発生します | 
 
								
 
								 
								  | 1 | 
 
								  スレッドが終了した際にモニターまたはミューテックスがロックされていても、エラーは発生しません | 
 
								
 
							 
 
						  
 
 
					  
 
				   
				   
					 - ビット 3
 
 
					 -  
						
 
							  
							  
							  
								 
								  | 0 | 
 
								  作成したスレッドをアクティブにする | 
 
								
 
								 
								  | 1 | 
 
								  作成したスレッドをサスペンド状態にする
 
								   | 
 
								
 
							 
 
						  
 
 
					  
 
				   
				   
					 - ビット 4
 
 
					 -  
						
制約事項: このビットは JVM COBOL ではサポートされていません。
 
 
						
 
							  
							  
							  
								 
								  | 0 | 
 
								  マルチスレッド アパートメント モデル (MTA) | 
 
								
 
								 
								  | 1 | 
 
								  シングルスレッド アパートメント モデル (STA) | 
 
								
 
							 
 
						  
 
 
					  
 
				   
				   
					 - 上記以外のビット
 
 
					 - 予約済み。
 
 
				   
				
 
			  
 
		   
		   
			 - priority
 
 
			 - 優先度を設定します。通常、優先度は、-100 から +100 の範囲内の値であり、現在のスレッドの優先度を基準とします。-1 と +1 は、呼び出し元よりも低いまたは高い優先度をスレッドに設定する (呼び出し元の優先度がすでに最低値または最高値である場合を除く) 最小単位の増減値です。指定した負の値または正の値によって、スレッドの優先度が限度を下回るまたは上回る場合は、最低値または最高値が使用されます。flags のビット 1 が 1 に設定されている場合、優先度は 0 から 100 の絶対値になります。
 
 
		   
		   
			 - stack-size
 
 
			 - 新しいスレッドに割り当てるスタックのサイズをランタイム システムに通知します。値が 0 の場合、有効なデフォルト値が使用されます。このパラメーターが無効と見なされた場合は、無視されるか、無効な値が指定されたことを示すエラーが返されます。
 
 
		   
		
 
	  
 
	 
 
	 
 
   
 
  
説明:
指定したエントリ ポイントは任意の言語で実装できます。
呼び出しが成功し、新しいスレッドが作成されると、そのスレッド識別子が thread-id に格納され、RETURN-CODE が 0 に設定されます。これは、スレッドが作成されてデタッチされる場合にも当てはまります。ただし、この場合、呼び出し元は、他の呼び出しで thread-id を使用する前に新しいスレッドがまだ存在することを必ず確認する必要があります。
呼び出しが失敗した場合、thread-id は NULL に設定され、エラー番号が RETURN-CODE に設定されます。