正文内容加载中...
posted @ 2019-04-14 18:24 jihite 阅读(183) 评论(0) 编辑
摘要: try-finally例子 打开文件读取第一行 存在不足 如果底层物理设备异常那么reader.readLine()会异常,同样reader.close()也会异常。这种情况下,第二个异常会抹掉第一个异常。因第一个异常往往是问题所在,抹掉第一个异常导致调试复杂 代码繁琐 引入try-with-res阅读全文
posted @ 2019-04-07 20:27 jihite 阅读(22) 评论(0) 编辑
摘要: 介绍 ReentrantLock称为重入锁,比内部锁synchonized拥有更强大的功能,它可中断、可定时、设置公平锁 【注】使用ReentrantLock时,一定要释放锁,一般释放放到finnal里写。 提供以下重要的方法 lock():获得锁,如果锁已被占用,则等待 lockInterrupt阅读全文
posted @ 2019-04-02 20:57 jihite 阅读(139) 评论(0) 编辑
摘要: 初心 用interrupt中断程序 初步实现 输出 问题:虽然是被中断状态,但实际并未中断 interrupt说明 在java中主要有3个相关方法,interrupt(),isInterrupted()和interrupted()。 interrupt(),在一个线程中调用另一个线程的interru阅读全文
posted @ 2019-04-02 18:03 jihite 阅读(25) 评论(0) 编辑
摘要: 序 死锁在平时开发,尤其是多并发编程时是要避免,不过要自己刻意写个死锁还不一定容易,下面参考别人代码写一个 代码 说明 o1、o2是static类型属于整个累,所以当定义deadLock1、deadLock2时是公用o1、o2的 deadLock1设置flag=1,先锁住o1,然后睡800ms,此时阅读全文
posted @ 2019-03-31 22:38 jihite 阅读(25) 评论(0) 编辑
摘要: 介绍 DK1.5之后,提供了读写锁ReentrantReadWriteLock,读写锁维护了一对锁:一个读锁,一个写锁。通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升。在读多写少的情况下,读写锁能够提供比排他锁更好的并发性和吞吐量。 源码定义 code 测试1 输出 结论:读读共享 测试阅读全文
posted @ 2019-03-31 20:05 jihite 阅读(24) 评论(0) 编辑
摘要: 原理 生产者在仓库没有满的时候进行生产,满了后等待 消费者在仓库有存货事新型消费,没货是等待 示例 #Phone #Storage 说明: synchonized保证对象只能被一个线程占用 执行wat()后,当前线程处于等待状态,释放锁,让别的线程可以继续执行 执行notify()后,唤醒其他处于w阅读全文
posted @ 2019-03-31 12:27 jihite 阅读(22) 评论(0) 编辑
摘要: 目标 部署一个单节点的ElasticSearch集群 依赖 java环境 安装 下载、解压 配置 config/elasticsearch.yml 参数含义 cluster.name 用来指定集群的名称。如果不指定,则默认是 elasticsearch。 node.name 用来指定当前节点的名称,阅读全文
posted @ 2019-03-16 10:07 jihite 阅读(71) 评论(0) 编辑
摘要: 需求 github上整个工厂比较大,下起来费劲,如何只下载一个单独的文件件呢? 方法一 以:https://github.com/eugenp/tutorials为例,下载其中的 spring-kafka, 进入目录齐地址为: 转换: 把tree/master 修改为 trunk转化为svn地址,即阅读全文
posted @ 2019-03-09 18:10 jihite 阅读(15) 评论(0) 编辑
摘要: 1.zookeeper在Kafka中的作用 Kafka实用zookeeper保存集群的元数据和消费者信息。Kafka发行版了自带Zookeeper,可以直接从脚本安装,不过安装一个完整版的Zookeeper也很easy。 2.安装zookeeper 下载 zookeeper-3.4.13.tar.g阅读全文
posted @ 2019-03-05 11:57 jihite 阅读(63) 评论(0) 编辑