有什么区别:
thread_envs[i] = soap_copy(&env);
和
thread_envs[i] = soap_new();
我们应该使用其中之一还是两者都使用?
有什么区别:
thread_envs[i] = soap_copy(&env);
和
thread_envs[i] = soap_new();
我们应该使用其中之一还是两者都使用?
从文档中:
struct soap *soap_new()
分配、初始化并返回指向运行时环境的指针
struct soap *soap_copy(struct soap *soap)
分配新的运行时环境并复制环境的内容,使新环境不与原始环境共享任何数据
答案实际上取决于您的意图:您想要为每个线程创建一个新的空白环境(use soap_new()
)还是为每个线程创建一个现有环境的单独副本(use soap_copy()
)。复制环境的过程可能会有一些额外的开销,所以在所有其他条件相同的情况下,使用soap_new()
.