一、互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理。 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行的修改,没错,速度是慢了,牺牲了速度而保证了数据安全。 1.上厕所的小例子:你上厕所的时候肯定得锁门... ...
分类:
编程语言 时间:
2019-09-23 22:31:32
阅读次数:
122
说到队列,我们首先想到就是先进先出,后进后出;那么何为优先队列呢,在优先队列中,元素被赋予优先级,当访问元素时,具有最高级优先级的元素先被访问。即优先队列具有最高级先出的行为特征。其内部其实是一个堆。 优先队列在头文件#include <queue>中; 其声明格式为:priority_queue ...
分类:
编程语言 时间:
2019-09-11 22:07:51
阅读次数:
122
线程queue、事件event及协程 线程queue 多线程抢占资源,让其保持串行的两种方式: ? 1、互斥锁 ? 2、队列 线程队列分为以下三种: 1、Queue(先进先出) 2、LifoQueue(后进先出) 3、PriorityQueue(优先级队列) 事件event 开启两个线程,一个线程运 ...
分类:
编程语言 时间:
2019-08-27 19:35:27
阅读次数:
152
[TOC] 1. 线程队列 1.1 先进先出(FIFO) 1.2 后进先出(LIFO)堆栈 1.3 优先级队列 面试题:用列表实现队列和堆栈 2. 事件event ? 开启两个线程,一个线程运行到中间的某个阶段,触发另一个线程执行。两个线程增加了耦合性。 如果程序中的其他线程需要通过判断某个线程的状 ...
分类:
编程语言 时间:
2019-08-27 18:58:32
阅读次数:
96
线程队列 FIFO队列 LIFO 栈 优先级队列 事件Event 并发的执行某个任务 .多线程多进程,几乎同时执行. 一个线程执行到中间时通知另一个线程开始执行. 属性 第一版没用 Event 第2版用了 Event 协程的初识 一个线程实现并发. 并发,并行,串行: 串行: 多个任务执行时,第一个 ...
分类:
其他好文 时间:
2019-08-26 22:43:43
阅读次数:
115
优先级队列的特征在于删除最大值和插入操作。 初级实现 数组实现(无序):惰性方法,仅在必要的时候找出最大元素; 数组实现(有序):积极方法:在插入时就保持列表有序,使后续操作更高效; 链表表示法 | 数据结构 | 插入元素 | 删除最大元素 | | | | | | 有序数组 | N | 1 | | ...
分类:
其他好文 时间:
2019-08-25 12:15:08
阅读次数:
66
优先级队列和普通队列并没有特大的不同之处,不一样的地方是,优先级队列的元素具有优先级之分。优先级高的元素在入队的时候应该放在队列前面。我下面实现的优先级队列元素的优先级由其数值大小决定。数值越小,优先级越高。ps:这和按一定规则排序好队列没啥区别啊。 实现如下 结果如下 ...
分类:
其他好文 时间:
2019-08-05 20:42:35
阅读次数:
108
优先级队列(priority_queue)是一种容器适配器(container adaptor)。它要求容器具有front、push_back、pop_back等操作,并且容器具有随机访问的能力,故优先队列可以基于vector或者deque构造。 queue和prioruty_queue都被定义在q ...
分类:
编程语言 时间:
2019-07-24 00:21:39
阅读次数:
160