- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 synchronized关键字浅析
背景在实际工程实践中,多线程并发执行场景十分常见。所谓线程安全性即是多线程并发执行场景中需要保证的基本要求,如果不能保证线程安全性,那么势必会在实际工程实践中产生错误数据、甚至严重且不易察觉的异常处理,导致最终结果的不确定性。对于临界资源,或者是必须串行操作的流程,势必需要保证多个线程中每次仅有一个线程持有或仅有一个线程进入。如何保证多个线程由并行转串行,去持有临界资源或进入必须串行操作的流程...
2018-08-31 22:38:31 1215
原创 BlockingQueue浅析
背景在设计任务处理系统的时候,很自然地想到使用生产/消费者模式。任务由生产者生产完成,然后交由消费者(通常是业务相关的处理器)进行消费,完成任务的处理。由于生产者和消费者的处理能力不可能完全一致,参考实际生活中生产线或工厂库存,可使用Queue来对二者进行隔离。生产者将任务生产完毕之后,不是直接交由消费者来进行立即消费,而是将其加入到Queue中;消费者从Queue中获取任务,然后进行任务分配...
2018-08-28 16:19:34 790
原创 JAVA线程池浅析
线程池的概念在谈到线程池之前,我们先说一说什么是线程与进程的区别与联系。每一个JAVA程序都是一个进程,在某些场景下,为了获得更好的处理性能,缩短处理时间,可以启动多线程来并发执行任务。每一个进程包含一到多个线程,其中一个为主线程;一个线程从属于一个进程。多线程概念的提出主要是为了充分利用CPU资源,在当前多核CPU的计算机上,并行执行任务,提高性能,缩短任务执行时间。但是线程会占用计...
2018-08-22 22:34:20 246
原创 Netty Server端常用组件分析
一、背景在本专题的第一篇文章中,我们简单介绍了Netty网络I/O框架推出的必要性,并给出了一个十分简单的Netty Server端实例。虽然它可以直接运行,但是由于非常简陋,因此并不适宜在生产环境直接使用。从本文开始,我们将对Netty中涉及到的主要组件简单加以介绍,本文主要介绍Netty Server端程序涉及到的Netty常用组件。二、Netty Server端常用组件我们先回到...
2018-08-20 17:06:13 231
原创 Netty使用概述
一、网络I/O框架谈到网络I/O框架,大家通常脑海里边第一个闪现出来的是JAVA BIO(Blocking I/O,阻塞I/O)、JAVA NIO(Non-blocking I/O,非阻塞I/O)和JAVA AIO(Asynchronized I/O,异步I/O)。但是基于原生JDK的I/O组件对网络I/O功能进行实现并用于生产环境略有复杂,以基于JAVA NIO为例,需要开发者自行处理网络连...
2018-08-18 17:13:42 813
原创 如何保证架构设计的灵活性与可扩展性
近些天最为火爆的段子莫过于RD(工程师)与PM(产品经理)的拳打脚踢了,我们先不纠结事情的起因与谁对谁错,单从架构设计的角度漫谈一下如何保证与PM沟通的流畅性,以及如何做到架构设计的灵活性与可扩展性,以应对后续不可避免的需求变更,减少迭代开发工作量,保证迭代开发的可控和系统的可维护。矛盾的产生众所周知,RD与PM之间在工作层面上,往往存在着矛盾。其实不仅是RD与PM,不同子系统的RD与RD...
2018-08-03 22:51:21 5595
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人