mutithread主要特点:
对于一个程序的地址空间是共享的
代码段共享,数据不能共享
mutithread单核会有线程切换,多核没有仅仅是数据处理就可以
不同操作系统接口比较统一
用多线程既能快速处理数据又能快速进行计算
缺点:
代码容易出错,mutithread类似于goto
可以能的问题包括:
1、死锁 (两个线程相互等待对方释放资源)
2、乱序
3、并发访问数据造成的问题(问题查错困难)
4、低效率
C++11给我们带来的新概念
1、高阶接口:(async,future) async:两件事情一起做
2、低阶接口:(thread,mutex)
以下是关于多线程简单的一个例子:
开启线程可以传入函数,不影响main函数正常运行
主线程和子线程两者运行速度未知,先后顺序未知
以join等待子线程工作完成,等子线程完成之后才会继续执行main
以下是关于多线程具体解析: