测试完容器和function之后,立马开始测和总结qt线程和std::thread相关特性,之后可能会继续网络库的测试,如qt的tcp,udp和c++的tcp,udp的一些比较,至于为啥是比较qt和c++之间,我也不知道= =。
序
以前虽然也用线程,但没完整试,这次算是各种试一下吧,效率上的测试一是不太好测,二是也时间上不太够,所以效率上的对比没有测试。本篇不提供代码,只是做了各方面诸如互斥量,条件变量的一些简单总结= =。
测试环境:Qt5.7,vs2015。
一、std::thread:
如下图所示:
(解释一般都是我自己的理解,所以如有错误,可以探讨)
1、构造:只有move赋值和move构造函数了。这个就不需要多解释,一目了然,如果不懂move,请参考我另一篇: 传送门
2、join:当前线程执行完这个区域后,阻塞,等待该子线程执行完之后,一起结束。
3、detach:分离线程对象,允许独立执行,即this不再拥有它的权限,一旦该线程退出,该线程所占用的已分配资源将被释放。
一句话过渡:最大的问题就是要解决数据共享和并发操作问题——所以有以