zlib:线程安全的 Zalloc 和 Zfree 在 C 语言中



我正在使用zlib C库来解压缩从网络流接收的数据,并且我有两个流在两个单独的NSThreads中运行。根据 zlib 文档,在两个线程中解压缩两个不同的 zlib 流需要 zalloc 和 zfree 是线程安全的。我目前正在传递Z_NULL(我在下面的膨胀代码)

zStream.zalloc = Z_NULL;
zStream.zfree = Z_NULL;
zStream.opaque = Z_NULL;
zStream.avail_in = 0;
zStream.next_in = Z_NULL;
int status = inflateInit(&zStream);
if (status != Z_OK)
    DLog(@"zlib setup error");
else
    DLog(@"zlib setup ok");
});

没有人有使用 zlib 在单独的线程中压缩多个流的经验?有没有人见过 zalloc 和 zfree 的线程安全实现?

Mac

OS X 上的malloc()free()已经是线程安全的。 因此,只需像您正在做的那样用Z_NULL初始化结构,您就会没事的。

相关内容

  • 没有找到相关文章

最新更新