一. POSIX - 信号量 #include <semaphore.h> sem_t sem; ///< 信号量 信号量,分为有名信号量 和无名信号量。 有名信号量由sem_open/sem_close/sem_unlink创建/关闭/销毁,用于进程间通信。 无名信号量由sem_init/sem_ ...
分类:
其他好文 时间:
2020-03-22 17:35:54
阅读次数:
66
python基础 信号量 semaphore evevt 线程queue 生产者消费者模型 ...
分类:
编程语言 时间:
2020-03-17 23:50:16
阅读次数:
72
在许多场景中,数据一致性是一个比较重要的话题,在单机环境中,我们可以通过Java提供的并发API来解决;而在分布式环境(会遇到网络故障、消息重复、消息丢失等各种问题)下要复杂得多,常见的解决方案是分布式事务、分布式锁等。 本文主要探讨如何利用Zookeeper来实现分布式锁。 关于分布式锁 分布式锁 ...
分类:
其他好文 时间:
2020-03-15 09:33:39
阅读次数:
85
官方文档: https://github.com/Netflix/Hystrix/wiki/Configuration 1)execution.isolation.strategy 隔离策略 THREAD 线程池 (默认) 它在单独的线程上执行,并发请求受线程池中线程数的限制 SEMAPHORE 信 ...
分类:
编程语言 时间:
2020-03-14 01:05:41
阅读次数:
88
进程通信 管道(pipe) 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 有名管道 (namedpipe) 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 信号量(semaphore) 信号量是一个计数器,可 ...
分类:
编程语言 时间:
2020-03-11 15:47:03
阅读次数:
72
14.常用辅助类 14.1CountDownLatch:减法计数器 14.2CyclicBarrier:加法计数器 14.3 Semaphore:信号量 acquire() 当一个线程调用acquire方法的时候,就是获取到了一个信号量 1 如果当前为0,就会一直等待下去 release() 信号量 ...
分类:
其他好文 时间:
2020-03-10 13:47:00
阅读次数:
67
性能: 数据量少时,Synchronized> Lock、Semaphore。 数据量大时,Lock > Synchronized > Semaphore。 Blockingqueue底层也是使用ReentrantLock + Condition。 一、Synchronized方式 1 packag ...
分类:
其他好文 时间:
2020-03-09 18:16:21
阅读次数:
50
看题目: 第一种解法采用绝对悲观锁保证绝对的线程安全,思路很简单:不考虑线程协作写代码,然后找出单线程环境下存在控制依赖与数据依赖且涉及共享变量的部分,保证其原子性后确定互斥关系,决定那些操作是互斥的,则共用一把锁。 class H2O { int hNums=0; int oNums=0; pub ...
分类:
其他好文 时间:
2020-03-09 01:24:01
阅读次数:
65
在 JUC 下包含了一些常用的同步工具类,今天就来详细介绍一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它们之间的区别。 一、CountDownLatch 先看一下,CountDownLatch 源码的官方介绍。 意思是,它是一个同步辅助器,允许一 ...
分类:
其他好文 时间:
2020-03-06 20:02:20
阅读次数:
59
一,谈一谈什么是AQS AQS是一个用来创建锁和同步器的框架,使用AQS能够简单且高效的构造出应用广泛的大量的同步器,比如常用的ReentrantLock,Semaphore‘,其他的诸如ReentrantReadWriteLock,FutureTask等等皆是基于AQS非常轻松容易的构造出符合我们 ...
分类:
其他好文 时间:
2020-03-03 00:35:23
阅读次数:
77