进程、线程
文章平均质量分 75
neko233
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
原子类型与C++11原子操作
原子操作 即多线程程序中“最小的且不可并行化的”操作。通常对一个共享的资源的操作是原子操作的话,意味着多个线程访问资源时,有且仅有唯一一个线程在对这个资源进行操作。 通常情况下,原子操作都是通过互斥的访问来保证的。例如使用POSIX标准的pthread库中的互斥锁来进行。 #include <pthread.h> #include <iostream> using namespace std; static long long total = 0; pthread_mutex_t m原创 2021-04-06 17:21:35 · 395 阅读 · 0 评论 -
线程间的互斥和信号量
线程间的互斥 互斥锁是用来保护一段临界区的,它保证某段时间内只有一个线程在执行一段代码或者访问某个资源。 函数 #include <pthread.h> pthread_mutex_t fastmutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t recmutex = PTHREAD_RECURSIVE_MUTEX_INITIALZER_NP; pthread_mutex_t errchkmutex = PTHREAD_ER原创 2021-02-04 16:19:31 · 311 阅读 · 0 评论 -
linux下的线程
线程与进程相比的有点: 系统资源消耗低 速度快 线程间数据共享比进程间容易 #include <pthread.h> #include <unistd.h> int pthread_create(pthread_t *thread,pthread_attr_t * attr,void* (*start_routine)(void*),void* arg);//创建线程 int pthread_join(pthread_t thread,void** threadReturn);/原创 2021-02-04 16:00:43 · 121 阅读 · 0 评论 -
进程间通信和同步
linux下进程间的通信方法:半双工管道、FIFO(命名管道)、消息队列、信号量、共享内存等。 1.半双工管道 进程创建管道,每次创建两个文件描述符来操作管道。其中一个对管道进行写操作,另一个描述符进行读操作。 创建管道的原型为: #include<unistd.h> int pipe(int filedes[2]); filedes数组是一个文件描述符的数组,用于保存管道返回的两个文件描述符。filedes[0]是为了读操作而创建和打开的,filedes[1]是为了写操作而打开的。函数执行原创 2021-02-04 15:31:32 · 425 阅读 · 0 评论
分享