2

違いは何ですか:

thread_envs[i] = soap_copy(&env);

thread_envs[i] = soap_new();

どちらかまたは両方を使用する必要がありますか?

4

2 に答える 2

2

ドキュメントから:

struct soap *soap_new()

ランタイム環境へのポインターを割り当て、初期化し、返します。

struct soap *soap_copy(struct soap *soap)

新しいランタイム環境を割り当て、環境の内容をコピーして、新しい環境が元の環境とデータを共有しないようにします

于 2009-12-24T15:05:59.097 に答える
1

答えは本当にあなたの意図に依存します: スレッドごとに新しい空の環境が必要なのか ( を使用soap_new())、それともスレッドごとに既存の環境の個別のコピーが必要なのか ( を使用soap_copy())。環境をコピーするプロセスにはおそらく追加のオーバーヘッドがあるため、他のすべての条件が等しい場合は、soap_new().

于 2009-12-24T15:07:04.680 に答える