06 2020 档案

摘要:1、概要 ZooKeeper是用于分布式应用程序的协调服务。它公开了一组简单的API,分布式应用程序可以基于这些API用于同步,节点状态、配置等信息、服务注册等信息。其由JAVA编写,支持JAVA 和C两种语言的客户端。 zookeeper 中数据基本单元叫节点,节点之下可包含子节点,最后以树级方式 阅读全文
posted @ 2020-06-30 21:35 风止雨歇 阅读(653) 评论(0) 推荐(0) 编辑
摘要:HashMap Java7,HashMap 会产生死锁; 数据模型:数组 + 链表 Java8,HashMap 不会产生死锁,同时put有可能会产生数据丢失的情况;数据模型:数组 + 链表 + 红黑树 JAVA7 HashMap死锁的原因:hashMap在多线程的场景下,扩容期间存在节点位置互换指针 阅读全文
posted @ 2020-06-30 00:02 风止雨歇 阅读(671) 评论(0) 推荐(0) 编辑
摘要:ScheduledThreadPoolExecutor 提交的任务按照执行的时间排序放入到 DelayQueue 队列中。 DelayQueue内部封装了一个PriorityQueue,它会根据time的先后时间排序(time小的排在前面),若time相同则根据sequenceNumber排序( s 阅读全文
posted @ 2020-06-29 23:12 风止雨歇 阅读(13434) 评论(0) 推荐(0) 编辑
摘要:一、概念 Fork/Join 框架是 Java7 提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork 就是把一个大任务切分为若干子任务并行的执行,Join 就是合并这些子任务的执行结果,最后得到这个大任务的结果。 Fork/ 阅读全文
posted @ 2020-06-28 23:32 风止雨歇 阅读(432) 评论(0) 推荐(0) 编辑
摘要:1. 线程的实现方式 讲线程池之前我们先看一下线程的实现方式: Thread,Runnable,Callable // 实现Runnable接口的类将被Thread执行,表示一个基本的任务 public interface Runnable { // run方法就是它所有的内容,就是实际执行的任务 阅读全文
posted @ 2020-06-22 22:10 风止雨歇 阅读(285) 评论(0) 推荐(0) 编辑
摘要:一、BlockingQueued BlockingQueued 队列使用 ReentrantLock 和 Condition(AQS实现)来实现的。Condition 只能用于独占模式。 条件队列中的节点永远不会被唤醒,一直阻塞者;要想唤醒,则需要把该节点放到CLH队列中,放入到CLH队列中才有机会 阅读全文
posted @ 2020-06-20 17:26 风止雨歇 阅读(1106) 评论(0) 推荐(0) 编辑
摘要:1、Automic Java中 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。 所谓原子类说简单点就是具有原子/原子操作特征的类。Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多 阅读全文
posted @ 2020-06-17 23:17 风止雨歇 阅读(292) 评论(0) 推荐(0) 编辑
摘要:1、Semaphore Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源,它是共享锁的方式。 Semaphore可以用于做流量控制,特别是公用资源有限的应用场景。 1.1 构造方法 public Semaphore(int permits 阅读全文
posted @ 2020-06-12 23:35 风止雨歇 阅读(223) 评论(0) 推荐(0) 编辑
摘要:一、AQS的概念及使用 Java并发编程核心在于 java.concurrent.util 包而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于 AbstractQueuedSynchronizer 简称AQS,AQS定义了 阅读全文
posted @ 2020-06-11 21:58 风止雨歇 阅读(4662) 评论(0) 推荐(2) 编辑
摘要:多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况;这种资源可能是:对象、变量、文件等。 由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变状态的访问,那么我们怎么解决线程并发安全问题? 实际上,所有的并发模式在解决线程安全问题时,采用的方案都是 序列化访问临界资源 阅读全文
posted @ 2020-06-02 23:18 风止雨歇 阅读(6385) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示