💡
原文英文,约1600词,阅读约需6分钟。
📝
内容提要
Visual Studio 2022 version 17.8 Preview 2支持C11线程,使得将跨平台C应用程序移植到Windows变得更加容易。C++程序可以包含C11线程头文件并像任何C程序一样调用函数。互斥锁、条件变量和线程特定存储也在Visual Studio版本17.8 Preview 2中实现。
🎯
关键要点
-
Visual Studio 2022版本17.8 Preview 2支持C11线程,简化跨平台C应用程序移植到Windows的过程。
-
C++程序可以包含C11线程头文件并像C程序一样调用相关函数。
-
C11线程与C++的<thread>设施不共享ABI,但可以在同一程序和线程中混合使用。
-
C11支持线程、互斥锁、条件变量和线程特定存储,这些功能在Visual Studio 17.8 Preview 2中实现。
-
线程通过thrd_create创建,允许用户传递入口点和用户数据指针。
-
Windows与Unix的线程实现存在根本差异,C11线程不能自我分离。
-
互斥锁通过mtx_t结构提供,支持普通、递归和定时互斥锁。
-
条件变量通过cnd_t结构提供,允许线程等待和唤醒。
-
线程特定存储通过_Thread_local关键字或tss_函数提供,支持析构函数。
-
使用tss_函数时,每个进程最多支持1024个TSS索引。
-
新线程功能作为vcruntime的卫星DLL发布,需要与应用程序一起分发。
-
用户可以在Visual Studio预览中尝试C11线程并提供反馈。
➡️