进程:由程序段、相关的数据段和PCB三部分便构成了进程实体进程的特征:动态性、并发性、独立性、异步性进程的三种状态:就绪(Ready)状态 执行(Running)状态 阻塞(Block)状态 临界区:人们把在每个进程中访问临界资源的那段代码称为临界区。 同步机制应遵循的规则 (1)空闲让进 (2)忙 ...
分类:
系统相关 时间:
2017-04-05 09:39:42
阅读次数:
159
多线程操作系统在进程调度(资源分配)的时候可能会发生死锁。 引起死锁的直接原因是竞争不可抢占的互斥资源。这种资源有可能是临界资源,例如打印机;也有可能是可消耗性资源,例如信号量。 引起死锁的间接原因进程推进顺序不当。即系统单独运行进程P1或者P2都没有问题,但是调度两个进程同时进行时,由于调度顺序导 ...
分类:
编程语言 时间:
2017-03-22 20:59:24
阅读次数:
255
一、分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个 ...
分类:
其他好文 时间:
2017-03-14 18:40:01
阅读次数:
201
1.线程的生命周期线程是一个动态执行的过程,它也有一个从产生到死亡的过程。 (1)生命周期的五种状态 新建(new Thread)当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。例如:Thread t1=new Thread(); 就绪(runnable)线程已经被启动,正 ...
分类:
编程语言 时间:
2017-02-26 16:43:18
阅读次数:
165
关于synchronized字段,不管该关键字是修饰方法还是修饰同步代码块,synchronzed拿到的都是对象。 当synchronized修饰的是方法时,synchronized所拿到的是调用该方法的对象的锁,一般情况下都是this的锁; 当synchronized()修饰的同步代码块时,syn ...
分类:
其他好文 时间:
2017-02-24 21:06:13
阅读次数:
211
在多线程编程中,线程安全问题是一个最为核心的问题,即当多个线程访问某共享、可变数据时,始终都不会导致数据破坏以及其他不该出现的结果。而所有的并发模式解决这个问题采用的方案都是序列化访问临界资源 。在 ...
分类:
编程语言 时间:
2017-02-14 12:31:28
阅读次数:
185
死锁是由于并发进程只能按互斥方式访问临界资源等多种因素引起的,并且是一种与执行时间和速度密切相关的错误现象。死锁的一般定义:若在一个进程集合中,每一个进程都在等待一个永远不会发生的事件而形成一个永久的阻塞状态,这种阻塞状态就是死锁。死锁的产生条件:1.互斥(mutual exclusion):系统存 ...
分类:
其他好文 时间:
2017-02-07 16:10:16
阅读次数:
178
1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明: ...
分类:
编程语言 时间:
2016-12-15 17:57:10
阅读次数:
146
进程间的相互作用 两种相互作用 同步 多个相关进程在执行次序上的协调。 制约关系:直接制约。 如图所示:一个进程在执行操作的时候,另一个进程必须等待,体现在次序上的等待和协调,并不争夺临界资源。 互斥 多个进程因为争夺临界资源二相互排斥执行的过程称为进程的互斥。 临界资源:也称为独占资源,是指在一段 ...
分类:
编程语言 时间:
2016-12-09 07:29:23
阅读次数:
303
方法一:使用memcache的add方法,memcache_add(‘lock’,1); 如果返回false,说明遇到锁,本进程等待或者返回错误, 如果返回true,说明加锁成功,可以对临界资源进行操作 参考链接:https://my.oschina.net/liuke1556/blog/52813 ...
分类:
Web程序 时间:
2016-10-09 17:16:27
阅读次数:
189