C/C++教程

C++多线程同步总结

本文主要是介绍C++多线程同步总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

关于C++多线程,写得好的博客太多了,内容丰富,排版又好看,就是难找。

整体看过以后,本人也总结一下,仅作为日后参照。

这里先推荐看过的几篇博文链接,非常值得一看。

https://blog.csdn.net/dingdingdodo/article/details/108477195

https://www.cnblogs.com/yinbiao/p/11190336.html

http://zhangxiaoya.github.io/2015/05/15/multi-thread-of-c-program-language-on-linux/

https://www.cnblogs.com/hesper/p/10738987.html

https://blog.csdn.net/qq_39382769/article/details/96075346

 

注:本人所用IDE为Dev-C++。

重在简洁啊,而且既能用windows平台下的,也能用linux平台下的多线程机制。

 

1.C++11 线程库的基本用法:创建线程、分离线程

#include<iostream>
#include<thread>
#include<windows.h>
using namespace std;
void threadProc()
{
	cout<<"this is in threadProc\n";
	cout<<"thread1's id is "<<this_thread::get_id()<<endl; //获取所属线程的id 
}
void threadProc2(int num)
{
	cout<<"thread num = "<<num<<endl;
}
void threadProc3()
{
	cout<<"this thread is detached\n";
}
void threadProc4()
{
	cout<<"this thread is detached and won't print in the same console.'\n";
}
int main()
{
	thread a;//创建线程1,定义线程,后面再分配任务 
	a = thread(threadProc);
	thread b(threadProc2,5);//创建线程2 ,定义线程的时候分配任务,参数类似于printf一样,可以为多个 
	a.join();
	b.join();//采用join,主线程会阻塞等待子线程执行完毕 
	thread c(threadProc3);
	c.detach();//采用detach,主线程不会等,这个线程开启早,还能输出到主线程的控制台 
	cout<<"main thread exit"<<endl;
	thread d(threadProc4);
	d.detach();//这个线程太晚了,主线程已经结束,不能输出到主线程的控制台了 
}

  

运行结果:

 

这篇关于C++多线程同步总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!