gpt4 book ai didi

c++ - 使用 C++11 std::thread native_handle 以及我是否需要 CloseHandle

转载 作者:可可西里 更新时间:2023-11-01 14:02:34 26 4
gpt4 key购买 nike

我开始练习使用 C++11 std::thread。通常,对于 Win32,只要我有线程句柄,我就需要调用 CloseHandle。当我使用 C++11 native_handle 时,是否仍需要调用 CloseHandle?另外,如果我不使用 C++11 native 句柄,线程句柄是否得到正确清理?

最佳答案

当然不是。
线程对象有一个析构函数,它释放对象可能获取的任何操作系统特定资源。

实际上,每个(好的)C++ 对象都有一个析构函数,可以清除需要清理的所有内容,并且这个析构函数(当代码编写正确时) 由程序自动调用。

这个习语被称为 RAII - 每个对象都有一个构造函数来收集对象所需的资源,以及一个对等析构函数,当对象超出范围时释放它们。

如果操作得当,这项技术比 C 风格的手动资源管理或“高级”垃圾收集器强大得多。

忠告,如果标准为您提供了一些实用程序,请完全忽略相应的 Win32 API。标准依赖操作系统特定的API才能正常工作。

关于c++ - 使用 C++11 std::thread native_handle 以及我是否需要 CloseHandle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com