浅析java并发包(六):线程池那些事儿 发表于 2018-10-28 | 分类于 java-concurrency 字数统计: 2,405 字 | 阅读时长 ≈ 9 分钟前言创建一个线程,最简单的做法是new一个线程,但是当大量请求过来时(类比窗口卖票的场景), 创建这么多个线程的开销就很大了。 今天整理下线程池相关知识,相对于传统做法,线程池的优势还是很明显的: 节省了创建和销毁线程的时间,提高了任务执行效率,也就增加了CPU的吞吐能力 阅读全文 »
巴厘岛旅行记 发表于 2018-10-24 | 分类于 travel 字数统计: 4,442 字 | 阅读时长 ≈ 15 分钟前言过了一个漫长的假期,国庆节七天加上婚假十天,过的都不会上班了。蜜月之行的计划本来打算是去欧洲看看的,但是听说基本都是玩十二天左右,时间太长会很累,其次由于我们第一次出国,很多事情不是很懂,所以跟了个10.09-10.15的七天五晚的旅行团(有出国经验的话建议自由行),遂主要记录在巴厘岛这几天的行程与游记。 阅读全文 »
《大型网站技术架构》知识总结 发表于 2018-09-23 | 分类于 architecture 字数统计: 3,585 字 | 阅读时长 ≈ 12 分钟前言又把《大型网站技术架构-核心原理与案例分析》看了一遍,之前走马观花看了一遍,没有体会到精髓。现在具备一定“中型”网站开发经验后再看之,又有些体会,故整理一下这本书的内容。 阅读全文 »
浅析java并发包(五):Callable、Future和FutureTask 发表于 2018-09-17 | 分类于 java-concurrency 字数统计: 612 字 | 阅读时长 ≈ 3 分钟前言创建一个线程,最熟悉的做法是集成Thread类或者实现Runnable接口重新run()。 但是这两种创建方式在一些场景比如想要获取线程的执行结果时却不那么好用。J.U.C满足了这种需求。 今天说一下不得不知的Callable、Future和FutureTask 阅读全文 »
浅析java并发包(四):闭锁与栅栏 发表于 2018-09-10 | 分类于 java-concurrency 字数统计: 2,170 字 | 阅读时长 ≈ 9 分钟前言闭锁(CountDownlatch)和栅栏(CyclicBarrier)功能看起来相似,都是同步工具类, 看起来都是可以阻塞一个操作,等待其依赖的一组操作完成之后再执行。但是害死有所区别。 阅读全文 »
浅析java并发包(三):阻塞队列(BlockingQueue) 发表于 2018-09-08 | 分类于 java-concurrency 字数统计: 1,511 字 | 阅读时长 ≈ 6 分钟前言阻塞队列 (BlockingQueue)是j.u.c下重要的数据结构,BlockingQueue提供了线程安全的队列访问方式: 当阻塞队列进行插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;从阻塞队列取数据时,如果队列已空,线程将会阻塞等待直到队列非空。 阅读全文 »
浅析java并发包(二):并发容器类 发表于 2018-09-02 | 分类于 java-concurrency 字数统计: 1,353 字 | 阅读时长 ≈ 6 分钟前言jdk1.5之前,线程安全的容器类有HashTable,Vector等实现。但是其内部使用的是synchronized内置锁这样重量级的实现,在高并发的情况下大大影响性能。 jdk1.5之后,j.u.c中有了基于CAS实现的更加高并发的实现来极大的提高伸缩性。 阅读全文 »
浅析java并发包(一):原子类和锁 发表于 2018-08-20 | 分类于 java-concurrency 字数统计: 2,271 字 | 阅读时长 ≈ 10 分钟前言jdk 1.5开始,新增了java.util.concurrent包(以下简称j.u.c),是一系列关于并发的工具类,是java并发编程必知必会的内容。今儿准备简单介绍一些常用的工具类。 阅读全文 »
再见,艾泽拉斯 发表于 2018-08-13 | 分类于 essay 字数统计: 1,203 字 | 阅读时长 ≈ 4 分钟再见终于,这一刻还是来了。2018年8月13日开始,彻底AFK了。虽然玩的菜,但好歹是玩的最久的游戏,就此告别,很开心有生之年去过艾泽拉斯。 阅读全文 »
MacOS解决pycurl安装的坑 发表于 2018-08-11 | 分类于 python 字数统计: 847 字 | 阅读时长 ≈ 4 分钟前言记录macos安装pycurl过程中的爬坑过程。 阅读全文 »