最近学习了操作系统的并发;以下是关于进程间实现并发,通信的两个方法。 1:利用管道进行进程间的通信 用到下列函数 pipe() from unistd.h sleep() write(), read() fork(); //创建子进程 管道只能用于具有亲缘关系的进程,可以将其看作一个文件,但有别于普 ...
分类:
编程语言 时间:
2020-06-12 12:23:04
阅读次数:
109
学习方法 学习技术的方法都很类似,大部分都有着类似的步骤: 场景 需求 解决方案 应用 原理 并发的目的 充分利用CPU 和 I/O资源 提高效率 并发的维度 分工 同步/协作 互斥 分工 线程池 fork/join future Guarded Suspension 保护性暂挂模式 Balking ...
分类:
其他好文 时间:
2020-06-12 00:48:24
阅读次数:
45
public class TT{ public static void main(String arg[]){ MyResourceClass mrc = new MyResourceClass(); Thread aThreadArray[] = new Thread[20]; System.ou ...
分类:
系统相关 时间:
2020-06-11 13:23:09
阅读次数:
70
1. 在生产者和消费者问题中,mutex,empty,full信号量的作用是什么?如果将生产者和消费者问题中的两次wait操作和两次signal操作次序进行交换会产生什么问题? 解答:在生产者和消费者问题中,mutex信号量是互斥信号量,确保生产者和消费者对缓冲区资源的互斥访问。empty和full ...
分类:
系统相关 时间:
2020-06-10 14:38:56
阅读次数:
97
锁既是给公共资源增加限制。如果是死锁的必须满足以下四个条件,互斥,不可剥夺,请求与保持, 循环等待,只要系统出现死锁,这四个条件必须成立。 信号量,有时被称为信号灯。是在多线程环境下使用的一种设施,他负责协调各个线程,以保证他们能够正确、合理的使用公共资源。 互斥:是指某一资源同时只允许一个访问者对 ...
分类:
编程语言 时间:
2020-06-08 23:56:21
阅读次数:
123
一、多线程的特点:并发和异步 同步是指一个事件一个事件的完成,只有完成了上面的事件才能开始下面的事件;异步是指一个调用或请求发给调用者,调用者不用等待结果的返回而继续当前的处理。为了防止并发和异步带来线程间资源的竞争的无序性,需要引入同步机制。同步机制有互斥量(互斥锁)、读写锁和条件变量。 二、临界 ...
分类:
编程语言 时间:
2020-06-08 14:29:09
阅读次数:
62
进程/线程的区别: 进程是资源分配的最小单位,线程是CPU调度的最小单位 死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程使用。 (2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 (4) ...
分类:
其他好文 时间:
2020-06-07 11:18:59
阅读次数:
88
Js文件异步加载 浏览器中渲染引擎与Js脚本引擎是互斥的,在浏览器开始渲染页面时,如果遇到<script>标签,会停止渲染当前页面,也就是说在脚本加载与执行的过程中会阻塞页面的渲染,在网速较差的环境下可能会出现浏览器页面假死的情况,这也就是尽量将<script>文件放置于<body>后的原因,Js文 ...
分类:
Web程序 时间:
2020-06-07 10:45:33
阅读次数:
75
如何检查线程是否死锁了? 产生死锁的四个必要条件 (1) 互斥条件:一个资源每次只能被一个进程(线程)使用。(2) 请求与保持条件:一个进程(线程)因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件 : 此进程(线程)已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件 : ...
分类:
其他好文 时间:
2020-06-03 20:39:43
阅读次数:
75
记录肖堃老师讲解的linux线程 1. linux系统中多任务(进程/线程)之间的关系 1> 独立:仅竞争CPU资源 2> 互斥:竞争除CPU外的其他资源 3> 同步:协调彼此运行的步调,保证协同运行的各个任务具有正确的执行次序 4> 通信:数据共享,彼此间传递数据或信息,以协同完成某项工作 2. ...
分类:
编程语言 时间:
2020-06-03 15:55:37
阅读次数:
88