c++的thread小测试
windows环境还用不了thread,得下一些mingw,弄了半天没弄好,直接用了商店中心就有的Ubuntu了,但是sudo install g++出现了下载不了的问题,解决方案:https://blog.csdn.net/qq_35451572/article/details/79516563

说几个函数:
- thread.join()是阻塞模式,就是这个线程不跑完,下个不动。
- thread.detach()与上个相反。
- mutex.lock()是个死循环的锁。
单纯的多线程
long long x = 0;
void t(int num){
for(int i = 1; i <= 1000000; i++){
x++;
}
cout << num << ' ' << x << '\n';
} int main(){
for(int i = 1; i <= 10; i++){
thread th(t, i);
th.detach();
}
string t; cin >> t;
cout << "tot " << x << endl;
cin >> t;
return 0;
}
测试结果:
6 946759
2 1049349
4 1056640
9 1100205
1 1166397
3 1231131
5 1294207
7 1356112
8 2101257
10 2113748
asf
tot 2113748
dsf
加锁的多线程
mutex flag;
long long x = 0;
void t(int num){
flag.lock();
for(int i = 1; i <= 1000000; i++){
x++;
}
cout << num << ' ' << x << '\n';
flag.unlock();
} int main(){
for(int i = 1; i <= 10; i++){
thread th(t, i);
th.detach();
}
string t; cin >> t;
cout << "tot " << x << endl;
cin >> t;
return 0;
}
测试结果:
1 1000000
2 2000000
3 3000000
4 4000000
5 5000000
6 6000000
7 7000000
8 8000000
9 9000000
10 10000000
asd
tot 10000000
asd
c++的thread小测试的更多相关文章
- Cad 二次开发关于SelectCrossingPolygon和SelectFence返回结果Status为error的小测试
CAD2008的二次开发,有个很奇怪的现象,只要你选择的点集不在当前视图上SelectCrossingPolygon和SelectFence返回结果Status就会为error,所以要获取正确的结果, ...
- python 程序小测试
python 程序小测试 对之前写的程序做简单的小测试 ... # -*- encoding:utf-8 -*- ''' 对所写程序做简单的测试 @author: bpf ''' def GameOv ...
- PHP中使用PDO操作事务的一些小测试
关于事务的问题,我们就不多解释了,以后在学习 MySQL 的相关内容时再深入的了解.今天我们主要是对 PDO 中操作事务的一些小测试,或许能发现一些比较好玩的内容. 在 MyISAM 上使用事务会怎么 ...
- 关于Thread ThreadPool Parallel 的一些小测试demo
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading ...
- HTTP性能小测试
一直说node.js如何如何好,就来测试一下吧~~ 首先接受一个小工具 Apache Bench简称ab 可以用来测试http性能 利用Apache Bench测试Web引擎性能关于此工具的详细介绍参 ...
- mysql注入小测试
转自:http://www.jb51.net/article/46163.htm 在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符.通常,用户可以通过以下接口调用数据库的内容:URL地址栏 ...
- SpringMvc拦截器小测试
前言 俗话说做项目是让人成长最快的方案,最近小编写项目的时候遇到了一个小问题.小编在项目中所负责的后台系统,但是后台系统是通过系统的页面是通过ifame联动的,那么这时候问题就来了,后台所做的所有操作 ...
- 曲演杂坛--Update的小测试
今天偶然想起一个UPDATE相关的小问题,正常情况下,如果我们将UPDATE改写成与之对应的SELECT语句,其SELECT查询结果应与UPDATE的目标表存在一对一的关系,例如: 对于UPDATE语 ...
- Java ConcurrentHashMap的小测试
今天正式开始自己的分布式学习,在第一章介绍多线程工作模式时,作者抛出了一段关于ConcurrentHashMap代码让我很是疑惑,代码如下: public class TestClass { priv ...
- 运行时异常RuntimeException捕获的小测试
public class ExceptionTest { public static void main(String[] args) throws InterruptedException { ne ...
随机推荐
- 使用jquery+layui 做一个输入搜索下拉 类似lay-search
效 果: 因为需要做一个搜索出现下拉然后点击 自动填装input 内容的 东西. 一开始使用lay-search 的控件去弄. 但是无法控制里面的内容.所以用了一些笨方法去弄 废话不说了, html ...
- RN 使用react-navigation写可以滚动的横向导航条
在react-native中写横向导航条,首选肯定是react-navigation的createMaterialTopTabNavigator,附上官方文档链接.https://reactnavig ...
- IOS弹出系统键盘后,页面不恢复
<script> var u = navigator.userAgent, app = navigator.appVersion var isIOS = !!u.match(/\(i[^; ...
- bootstrapTable insertRow 新增行保留原数据
思路:保留原数据,然后新增行. var optionsxx = {//省略xxx: columns: [{ checkbox: true}, { field: 'id', title: '主键', c ...
- shell中产生随机字符串的方法
random变量 echo $RANDOM 8746 生成0-32767之间的整数随机数,若超过5位可以加个固定10位整数,然后进行求余. 再结合md5生成字符串 echo $RANDOM |md5s ...
- Java知识体系深度理解
1 post请求和get请求异同点 ①无论是POST还是GET请求,都是基于超文本传输协议(HTTP)的,而HTTP协议是TCP/IP协议族的应用层协议. HTTP的底层是TCP/IP.所以GET和P ...
- ajax的重新学习,以及axios
首先在这次学习之前已经又过了简单的入门,并且在上学期vue的开发中对其中的ajax语法以及方法有所认识,但是还有很多别的框架不同种的写法,因此我需要掌握原生ajax的知识 一.对ajax的简单认识 a ...
- 2003031120—廖威—Python数据分析第四周作业—matplotlib的学习
项目 内容 课程班级博客链接 20级数据班(本) 这个作业要求链接 python数据分析第四周作业要求 博客名称 2003031120-廖威-Python数据分析第四周作业-matplotlib的学习 ...
- 互联网架构 之备份服务器 rsync
备份服务器(Rsync) 1.介绍备份的场景 1.什么情况下需要备份 一般数据比较重要的情况下,数据如果丢失很容易找不回来了的,建议备份. 2.什么是备份 将原有的数据复制一份或几份存起来,以备不时之 ...
- C语言中链表与队列
https://www.cnblogs.com/lanhaicode/p/10432004.html