複数のスレットで、自作関数を同時に使っても大丈夫ですよね?

解決


まゆら  2014-11-03 18:59:47  No: 46825  IP: [192.*.*.*]

本来の質問形式ではないですけど、確認させてください。

外部に分けた関数(自作の簡易ライブラリ、クラスではないです)を、二つのスレッドで同時に使っても、それぞれ独立して、相互で干渉したりしませんよね?

例えば、大きな素数を発見する関数を作り、別のユニット?に分けました。
それを、スレッドA内とスレッドB内で同時に呼び出しても、それぞれのスレッド内で、きちんと処理されますよね?

編集    削除
 2014-11-03 22:06:18  No: 46826  IP: [192.*.*.*]

作りにもよりますが、ローカル変数のみを使用するような関数であれば、
どこからいつ呼んでも同じ答えを返します。

外部のプロパティやグローバル変数にアクセス、変更するような関数や、
引数を直接変更して答えを返すような関数の場合には注意が必要です。

編集    削除
いけぴ  2014-11-05 21:25:11  No: 46827  IP: [192.*.*.*]

リエントラント構造になっていれば問題ありません。
グローバル変数等へのアクセスがある場合、セマフォ等の排他制御
をする必要があります。

編集    削除
まゆら  2014-11-08 21:38:28  No: 46828  IP: [192.*.*.*]

専門用語は少しわかりませんが、相互が独立しているのなら、了解です。
クラスは、オブジェクトを作るので、データをオブジェクトごとに内包しているのは分かるのですが、関数もそうであるのなら、了解です。

ありがとうございました

編集    削除