设为首页
收藏本站
切换到窄版
登录
立即注册
找回密码
帖子
搜索
本版
帖子
用户
快捷导航
论坛
BBS
C语言
C++
NET
JAVA
PHP
易语言
数据库
IE盒子
»
论坛
›
IE盒子
›
C++
›
并行计算7:C++多线程1→ 概述
返回列表
发帖
查看:
109
|
回复:
1
并行计算7:C++多线程1→ 概述
[复制链接]
靓儿
靓儿
当前离线
积分
13
3
主题
7
帖子
13
积分
新手上路
新手上路, 积分 13, 距离下一级还需 37 积分
新手上路, 积分 13, 距离下一级还需 37 积分
积分
13
发消息
发表于 2022-11-27 19:11:07
|
显示全部楼层
|
阅读模式
前面的文章介绍了基于OpenMP的并行程序编写方法,该方法具有
实现并行的代码少
、
增量并行化实施容易
和
跨平台支持
等优点
。
但OpenMP也有一些不足,比如不自动检查竞赛条件、不适用于分布式存储系统,不直接支持并行I/O。从本节开始将介绍基于C++11的并行编程方法,它与OpenMP都属于并行计算模型中的线程模型(专栏第三篇)。
1 线程库
1.1 POSIX Threads (Pthreads)
(1) 头文件
:#include <pthread.h>
(2) 特点:
允许访问共享内存平台上的低级特性
与高级API相比,代码行数更多
增量并行不方便
(3) 示例
1.2 C++11 Threads
传统的C++中并没有线程这个概念,在C++11出来之前,如果想要实现多线程,需要借助操作系统平台提供的API,比如Linux的<pthread.h>,或者windows下的<windows.h> 。
C++11提供了
语言层面上的多线程
,解决了跨平台的问题,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。
(1) 头文件
:#include <thread>
(2) 特点:
POSIX线程API比较难用,需要许多附加代码,C++11中提供了另一种使用线程的方法,与C++及其特性很好地集成,入门相对容易。
(3) 示例
C++11 新标准中引入了5个头文件来支持多线程编程,如下图所示
参考:
一文详解C++多线程_非晚非晚的博客-CSDN博客_c++多线程
C++ 多线程 | 菜鸟教程
C++ std::thread | 菜鸟教程
zizbee:C++多线程并发基础入门教程
GitHub - anthonywilliams/ccia_code_samples: Code samples for C++ Concurrency in Action
https://beefnoodles.cc/assets/book/C++%20Concurrency%20in%20Action.pdf
https://www.cse-lab.ethz.ch/wp-content/uploads/2021/11/TLP-OpenMP-I.pdf
回复
举报
诚挚李
诚挚李
当前离线
积分
16
3
主题
8
帖子
16
积分
新手上路
新手上路, 积分 16, 距离下一级还需 34 积分
新手上路, 积分 16, 距离下一级还需 34 积分
积分
16
发消息
发表于 2025-3-15 18:46:39
|
显示全部楼层
楼猪V5啊
回复
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表