Java并发编程(04)--线程池

抛开Java自己封装的newFixedThreadPool, newCachedThreadPool等工厂线程池方法, 最核心的就是ThreadPoolExecutor的配置, 包括线程池的大小, 工作队列, 空闲线程存活时间以及饱和策略。 »

JJava并发编程(01)--基础学习

打了2年多的Python代码, 大大小小的项目也做了一些, 代码规范和并发效率一直以来是比较头疼的问题。 因为GIL全局解释器锁的存在使得Python程序员永远只能使用单核, 并且在锁的保护下许多的效率问题都被掩盖。 在学习了Java之后, 对其并发模块的设计深感惊艳, 比如ConcurrentHashMap的分段锁实现, volatile关键字保证变量的可见性, 所以在这里对其进行整理并进一步加深理解。 »

Java基础编程(04)--常用的设计模式(01)

在前面I/O系统中介绍了装饰模式, 在接口与抽象类中介绍了适配器模式, 以及设计模式的基础, 设计原则。 设计模式其实并没有那么神秘, 那么复杂, 本质上仍然是六大设计原则的体现。 既然要写, 就把所有的设计模式统统讲完, 才有快感。 另外这篇文章同样也会结合Python语言中的设计模式一起进行梳理, 这样做会进一步的加深我们对设计模式的理解, 至少在我这里是这样的。 »

Java基础编程(03)--容器

Java中的各种容器类是对基本数据结构, 如顺序表, 链表, 平衡二叉树, 红黑树等最直接的体现, 容器在使用时最重要的就是其在不同的应用场景下的时间复杂度。 例如, 需要一个有序的容器, 需要频繁的向其头部和尾部分别执行删除和插入操作, 此时选择数组所实现的容器就非常的不明智。 所以, 如果想要彻底理解Java中的容器, 首先要理解计算机世界中的基础数据结构。 另外需要说明的是, 本篇博文没有任何代码, 只对各种容器的原理进行说明。 »