C++11 的新特性: thread
来源:互联网 发布:淘宝怎么判断虚假交易 编辑:程序博客网 时间:2024/04/27 20:14
这篇博客说的比较全面:
http://blog.csdn.net/tujiaw/article/details/8245130
我这里只贴一下我用到的部分内容:
windows系统中,需要vs2012才支持。
1.线程的创建
C++11线程类std::thread,头文件include <thread>
首先,看一个最简单的例子:
- void my_thread()
- {
- puts("hello, world");
- }
- int main(int argc, char *argv[])
- {
- std::thread t(my_thread);
- t.join();
- system("pause");
- return 0;
- }
实例化一个线程对象t,参数my_thread是一个函数,在线程创建完成后将被执行,
t.join()等待子线程my_thread执行完之后,主线程才可以继续执行下去,此时主线程会
释放掉执行完后的子线程资源。
当然,如果不想等待子线程,可以在主线程里面执行t.detach()将子线程从主线程里分离,
子线程执行完成后会自己释放掉资源。分离后的线程,主线程将对它没有控制权了。
相对于以前使用过的beginthread传多个参数需要传入struct地址,
boost::thread传参需要bind,std::thread传参真的非常方便,而且可读性也很好。
下面例子在实例化线程对象的时候,在线程函数my_thread后面紧接着传入两个参数。
- #include <iostream>
- #include <stdlib.h>
- #include <thread>
- #include <string>
- void my_thread(int num, const std::string& str)
- {
- std::cout << "num:" << num << ",name:" << str << std::endl;
- }
- int main(int argc, char *argv[])
- {
- int num = 1234;
- std::string str = "tujiaw";
- std::thread t(my_thread, num, str);
- t.detach();
- system("pause");
- return 0;
- }
0 0
- C++11 的新特性: thread
- C++ 11新特性 thread开放线程
- C+11 新特性
- C 99的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- [C++]C++11新特性
- 【C++】 C++11新特性
- C++11 新特性:多執行序程式開發 Thread
- [C++] C++11给我们带来的新特性
- C++primer中提到的C++11新特性总结
- 【C++】C++11新特性 之 lambda表达式的使用
- 项目笔记-数据库进程宕机
- 旭丛知道木格栅吊顶施工流程
- Unity之角色换装
- 解决无线网卡断网的问题
- Foundation框架: 11.NSDate的基本认识和使用
- C++11 的新特性: thread
- sth写在最开始
- struts2—使用通配符
- 旭丛知道木格栅吊顶施工流程
- POJ1135比较有意思的对短路(多米骨牌)
- [LeetCode] Majority Element
- php-堆排序
- Spring4+hibernate4+struts2配置文件
- WPF Button 鼠标移入、移除、选中状态的改变