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 ...
随机推荐
- google api 后端打点上报
https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type ...
- Linux下找不到SO的解决方法
Linux下找不到so文件的解决办法 1)将.so文件路径的目录添加到/etc/ld.so.conf sudo vim /etc/ld.so.conf 将你的SO文件存放路径的根目录写进去(不带so本 ...
- jenkins +docker+python接口自动化之docker下安装jenkins(一)
1.下载jenkins启动docker服务之后,首先搜索可用的jenkins镜像 docker search jenkins 第一个是官方版本,但是已标明废弃了,让用第二个jenkisn/jenkin ...
- Docker部署Nastool(含jellyfin、transmission)
先弄清楚原理 首先从[资源搜索]或者[推荐栏目]寻找自己想看的电影,执行订阅或者搜索资源启动下载,下载电影存放在downloads/mov目录下,[媒体整理]就是将mov子目录下电影文件复制到down ...
- flume往kafka中导入数据
1.编辑flume的配置文件 a1.sources = r1 a1.channels = c1 # Describe/configure the source a1.sources.r1.type = ...
- Java中double保留2位小数(精度丢失)的两种方式
Java中double保留2位小数(精度丢失)的两种方式 在我们日常开发中,使用double数据类型进行计算,偶尔会出现精度丢失的情况,例如实际结果是0.75,就可能出现0.7500000000000 ...
- Callable、Future、FutureTash详解
Callable.Future.FutureTash详解 Callable与Future是在JAVA的后续版本中引入进来的,Callable类似于Runnable接口,实现Callable接 口的类与 ...
- XML_DTD_20200415
<!-- xml的注释写法 --> 格式良好的xml语言必须具备的几个条件 1.必须有xml声明语句,声明版本号与编码字符集 2.必须有且仅有一个根元素 3.标签大小写敏感 4.属性值 ...
- [Leetcode 701]二叉搜索树BST中插入元素
题目 BST二叉搜索树中插入元素 二叉搜索树:左边<root<右边 https://leetcode.com/problems/insert-into-a-binary-search-tr ...
- 循环文件夹汇总所有发票开具Excel文件数据
'xlsx cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex= ...