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