Visual Studio 11开发指南(16)C++11更新-多线程和异步操作管理

本文介绍了Visual Studio 11对C++11标准的支持,特别是多线程和异步操作的管理。讨论了<thread>、<future>、<mutex>等头文件的使用,包括线程的创建、同步、异步操作的执行,并通过实例展示了如何利用这些工具进行高效、安全的并发编程。同时,强调了在使用锁进行同步时对性能的影响以及公平性的保证。
摘要由CSDN通过智能技术生成

Visual Studio 11增强支持的标准 C + + 11

现在支持此预览的 Visual Studio 头的 STL 中的新头文件可以进行多线程编程和异步操作管理。

<thread>,<future>,<atomic>,<time>,<mutex>,<condition_variable>,<ratio>,<filesystem>

头文件<thread>作为其名称来创建和操作线程

 

1.thread t([]()
 2.    {    
 3.     cout <<  "ThreadID : " << std::this_thread::get_id() << endl;        
 4.    });        
 5.    t.join();


这是传递给线程的类的构造函数的一种方法,而不是在这里我们使用Lambda 表达式中引入C + + 11Join ()方法,这是一个调用阻塞,使主线程等待,直到线程完成他的工作。如果要解耦变量的类型线程,线程在 Windows 那里 调用 的detach()方法,这样做违背计划的detach()方法,不会影响与线程句柄关联的窗口 (CloseHandle)。因此可能是使用变量的 t 型线,旧 Windows API 通过检索的本机句柄,但代码将成为便携式少得多。


 

1.WaitForSingleObject(t.native_handle()._Hnd ,INFINITE);
 2.    t.detach();

 

在线程, join ()方法是实质相同,上述代码 (在 Windows 平台) 。

很可能也与要检索的可用使用hardware_concurrency()方法的虚拟处理器数目的线程 ,


unsigned numLogicalProc=t.hardware_concurrency(); 

 

操作的线程,总是会对同步与保护的关键地区。头<mutex>提供这种排斥同步对象相互示例的效果
注意,使用锁来总是对性能的影响 !


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值