并发
文章平均质量分 83
卫橙
这个作者很懒,什么都没留下…
展开
-
11月12日笔记并发7_线程池(结构+模板)
1.线程池 我们都知道,线程是进程的一个执行分支 操作系统上 以现场为单位进行调度 =》理论上而言 一个进程拥有的线程越多 其处理效率越高 但是 实际上 收操作系统,硬件设备等影响 一个进程创建的线程数量和处理效率并不是成正比(线性关系) 因此 一般情况下 线程的创建不能 "为所欲为" 我们之前的代码 如果你创建成千上万个线程同时拷贝 那么你的系统就会卡死 因此为了解决这种BUG 我们认为的参考C++,引入了线程池的概念 ...原创 2021-11-17 09:24:50 · 486 阅读 · 0 评论 -
11月10日笔记并发6_线程(线程函数,线程创建,退出,属性,互斥锁,条件变量)
typedef void*(*start_routine_t)(void*); int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); void pthread_exit(void *retval); int pthread_setcancelstate(int st...原创 2021-11-10 16:28:05 · 278 阅读 · 0 评论 -
11月5日笔记并发5_信号量(信号量集的id,PV操作,有名无名信号量,单个信号量[POSIX sem],无名的销毁)
int semget(key_t key, int nsems, int semflg); int semctl(int semid, int semnum, int cmd, arg); int semop(int semid, struct sembuf *sops, size_t nsops); int semtimedop(int semid, struct sembuf *sops, size_t nsops, const struct timespec *timeout); sem...原创 2021-11-08 19:53:44 · 387 阅读 · 0 评论 -
11月3日笔记并发4_共享内存 (key 内存映射 解映射 控制[删除它])
1.共享内存 共享是进程间通信的一种方式 多个进程共享一段内存 由于多个进程共享一段内存,这段内存既是你的,也是我的 我往这块内存中写数据 实际上就是往你的内存中写数据 比其他的IPC(pipe FIFO messages)s少了一个copy内存 的过程 共享内存的效率更高 "随内核持续性" 实现的方式 在内核中开辟一段共享内存 其他进程通过映射的方式 获取这段内存的引用(指针) ...原创 2021-11-05 10:03:40 · 224 阅读 · 0 评论 -
11月3日笔记并发3_信号
1.信号 信号 是进程间通信的一种方式,这种方式没有传输数据 在内核中传递的是一个信号(整数) 信号的表示是一个整数 不同的信号值 代表不同含义 当然用户也可以自定义信号 既然是自定义的信号 那么含义也有程序员来解释 Terminate 终止 Signal Value Action Comment ───────────────────────...原创 2021-11-03 15:06:52 · 116 阅读 · 0 评论 -
11月1日笔记并发2_IPC_管道
1.IPC Internal Processes Communication 进程间通信 进程间进行数据交换 可以直接定义一个全局变量? 不可以,因为进程间的地址空间是独立 所以 如果两个进程要进行通信,必须把数据放在一个 双方都可以访问地方 文件 可以 文件在文件系统(硬盘),大家都可以访问 但是速度太慢了 =》 在操作系统内核中开辟一块空间(某种机制),进程去访问它 ...原创 2021-11-01 20:13:46 · 110 阅读 · 0 评论 -
11月1日笔记并发1_进程
0.问题引入 程序 = 数据结构 + 算法 数据:用来表示人们思维对象的抽象概念的物理表现叫数据 而数据处理的规则叫操作(指令) 对某一个优先数据集合所实行的,目的在于解决某一个问题 的一组有限指令集合,称之为计算 (1)顺序执行 一个程序执行完毕之后,才能执行下一个程序 例如一个程序分为三个步骤 输入数据-》计算-》写回文件 缺陷 CPU利用率非...原创 2021-11-01 16:21:23 · 131 阅读 · 0 评论