对象是过程的抽象,线程是调度的抽象; 分离并发和业务代码:生产者-消费者、读者写者模型、宴席哲学家问题(筷子问题) 互斥 线程饥饿 死锁 活锁 ...
分类:
编程语言 时间:
2018-12-07 11:49:52
阅读次数:
135
第一次玩属于自己的博客,今天在一个App上看到的,说的很好,再敲了一遍,分享一下有关于死锁、活锁及饥饿的概念和区别,希望大家共同进步! 死锁:是指两个或两个以上的进程(或线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死 ...
分类:
其他好文 时间:
2018-11-25 17:46:57
阅读次数:
216
名词解释并发(Concurrency)与并行(Parallelism)并发偏重于多个任务交替执行,而多个任务之间有可能存在还是串行的;并行是真正意义上的同时执行;如果只有一个cpu是不可能真实并行的。临界区共享资源死锁(Deadlock)、饥饿(Starvation)和活锁(Livelock)死锁:多个线程之间相互出现等锁释放的场景,长期处于饥饿状态;饥饿:是指某一个或多个线程因为种种原因无法获得
分类:
其他好文 时间:
2018-10-23 18:01:51
阅读次数:
165
1,线程 1,同步和异步 2,临界区 用来表示一种公共资源或者说是共享数据,可以被多个线程使用。但是每一次,只能有一个线程使用,其余的线程要等待临界区资源释放。 3,阻塞和非阻塞: 阻塞:一个线程占用临界区,其余线程不能进入临界区的时候叫做阻塞。 非阻塞:允许多个线程进入临界区。 4,死锁,活锁,饥 ...
分类:
其他好文 时间:
2018-10-16 17:49:15
阅读次数:
176
死锁 死锁 线程A或者B需要过独木桥(使用该进程),而C还没有走完(进程还在占用),于是三方僵死; 也可以是没有C 的情况下,A和B互不礼让僵死。 A和B都认为自己优先级最高应该使用该进程。 活锁 活锁 线程A和B都需要过桥(都需要使用进程),而都礼让不走(那到的系统优先级相同,都认为不是自己优先级 ...
分类:
编程语言 时间:
2018-07-30 21:29:36
阅读次数:
183
1. ZAB协议和Paxos算法: 简单的理解, ZAB协议是Paxos算法的优化。 Paxos算法在出现竞争的情况下,其收敛速度很慢,甚至可能出现活锁的情况,例如当有三个及三个以上的proposer在发送prepare请求后,很难有一个proposer收到半数以上的回复而不断地执行第一阶段的协议。 ...
分类:
其他好文 时间:
2018-05-14 11:06:29
阅读次数:
130
上一章讨论了paxos算法,把paxos推到一个很高的位置。但是,paxos有没有什么问题呢?实际上,paxos还是有其自身的缺点的: 1. 活锁问题。在base-paxos算法中,不存在leader这样的角色,于是存在这样一种情况,即P1提交了一个proposal n1并且通过了prepare阶段 ...
分类:
其他好文 时间:
2018-04-05 11:53:46
阅读次数:
204
简介 分布式系统和应用,不仅能提供更强的计算能力,还能为我们提供更好的容灾性和扩展性。 ZooKeeper是Google的Chubby项目的开源实现,它曾经作为Hadoop的子项目,在大数据领域得到广泛应用 ZooKeeper以Fast Paxos算法为基础,同时为了解决活锁问题,对Fast Pax ...
分类:
其他好文 时间:
2018-04-03 22:00:12
阅读次数:
133
死锁 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无 ...
分类:
其他好文 时间:
2017-07-09 19:33:27
阅读次数:
252
进程之间通讯用什么: 套接字、信号处理器、共享内存、信号量、文件。 线程之间通讯用什么: 线程的好处: 降低开发维护成本,提高程序性能,提高资源利用率和系统吞吐量。 线程带来的风险: 线程安全问题:永远不要发生糟糕的事情 线程的活跃性问题:某件正确的事情最终会发生。比如,死锁 饥饿 活锁(不明白) ...
分类:
其他好文 时间:
2017-07-07 20:16:32
阅读次数:
116