摘要: AQS 阅读全文
posted @ 2019-09-08 01:07 南山的海风 阅读(133) 评论(0) 推荐(0) 编辑
摘要: TreeMap的两种排序方法 TreeSet可以实现对元素按照某种规则进行排序 一 自然排序 1.Student类中实现 Comparable<T>接口 2.重写Comparable接口中的Compareto方法 二 比较器排序 1.单独创建一个比较类,这里以MyComparator为例,并且要让其 阅读全文
posted @ 2019-09-08 01:00 南山的海风 阅读(264) 评论(0) 推荐(0) 编辑
摘要: OSI 的七层模型 应用层:网络服务与最终用户的一个接口。HTTP、FTP、RPC表示层:数据的表示、安全、压缩。会话层:建立、管理、终止会话。传输层:定义传输数据的协议端口号,以及流控和差错校验。TCP、UDP网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。IP数据链路层:建立逻辑连接、进行 阅读全文
posted @ 2019-09-06 21:54 南山的海风 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 简介 ZooKeeper 是一个开源的分布式协调服务。 分布式应用程序可以基于 ZooKeeper 实现诸如命名服务、分布式锁、集群管理、Master 选举、数据发布/订阅、负载均衡、分布式协调/通知、配置维护、分布式同步、分布式锁和分布式队列等功能。 数据结构-ZNode znode和系统的文件系 阅读全文
posted @ 2019-09-05 15:48 南山的海风 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 概述 消息队列比作一个存放消息的容器,需要使用消息的时候可以取出消息供自己使用。是分布式中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削锋、降低系统耦合性。(注意消费信息顺序问题,可能出现消费失败,或者一个queue多个consumer也会导致消息被消费顺序不对,一定要保证消息被消费 阅读全文
posted @ 2019-08-31 15:54 南山的海风 阅读(175) 评论(0) 推荐(0) 编辑
摘要: ThreadPoolExecutor继承了AbstractExecutorService,该抽象类为线程池提供了默认实现。后面讲到线程池代码时详细说明。 构造函数 ThreadPoolExecutor有很多重载的构造函数,所有构造函数最终都调用了一个构造函数,只是有些构造函数有默认参数而已,看下最终 阅读全文
posted @ 2019-08-28 20:50 南山的海风 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 同步容器 为了解决并发情况下的容器线程安全问题的。给多线程环境准备一个线程安全的容器对象。 线程安全的容器对象: Vector, Hashtable。线程安全容器对象,都是使用synchronized方法实现的。而concurrent包中的同步容器,大多数是使用系统底层技术实现的线程安全。类似nat 阅读全文
posted @ 2019-08-28 19:34 南山的海风 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 锁的种类 Java中锁的种类大致分为偏向锁,自旋锁,轻量级锁,重量级锁。 锁的使用方式为:先提供偏向锁,如果不满足的时候,升级为轻量级锁,再不满足,升级为重量级锁。自旋锁是一个过渡的锁状态,不是一种实际的锁类型。 锁只能升级,不能降级。 偏向锁 是一种编译解释锁。如果代码中不可能出现多线程并发争抢同 阅读全文
posted @ 2019-08-28 11:47 南山的海风 阅读(376) 评论(0) 推荐(0) 编辑
摘要: synchronize synchronized锁什么?锁对象。 可能锁对象包括: this, 临界资源对象(Object),Class类对象。 同步 - 原子性 加锁的目的: 就是为了保证操作的原子性 同步方法 同步方法锁定的是当前对象。当多线程通过同一个对象引用多次调用当前同步方法时,需同步执行 阅读全文
posted @ 2019-08-28 10:40 南山的海风 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 概述 ConcurrentHashMap 1.7 版本前和 1.8 版本之后数据结构有所调整 1.7 结构:底层采用 分段的数组+链表 实现。(图1)主要是segment数组,segment 保存的是一个HashEntry数组(和hashmap 1.7 的结构一样)。每个segment就相当于一个H 阅读全文
posted @ 2019-08-28 00:25 南山的海风 阅读(241) 评论(0) 推荐(0) 编辑