【发布时间】:2016-01-15 22:32:49
【问题描述】:
当我开始使用 C/C++ 编码时开发的项目时,我正在修改我的代码。
这是关于线程的。在我阅读的教程(从 2006 年开始)中,他们说,在为 Windows 开发时,可以使用 CreateThread() 创建线程。使用这个函数比使用 std::thread 更好吗?
它也更快吗?
【问题讨论】:
标签: c++ multithreading
当我开始使用 C/C++ 编码时开发的项目时,我正在修改我的代码。
这是关于线程的。在我阅读的教程(从 2006 年开始)中,他们说,在为 Windows 开发时,可以使用 CreateThread() 创建线程。使用这个函数比使用 std::thread 更好吗?
它也更快吗?
【问题讨论】:
标签: c++ multithreading
根据规范,在加载 CRT 的应用程序(大多数 C/C++ 都是)中,您不能使用 CreateThread:
可执行文件中调用 C 运行时库 (CRT) 的线程应使用
_beginthreadexand_endthreadex函数进行线程管理,而不是 CreateThread 和 ExitThread;这需要使用 CRT 的多线程版本。如果使用 CreateThread 创建的线程调用 CRT,CRT 可能会在内存不足的情况下终止进程。
另一方面,std::thread 会做正确的事。
【讨论】: