Visual Studio 2022 版本 17.8 预览版 2 中的 C11 线程

Visual Studio 2022 版本 17.8 预览版 2 中的 C11 线程

💡 原文英文,约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线程并提供反馈。

➡️

继续阅读