2022-11-15 开发语言-Java►Java并发编程 Java并发编程学习13-任务取消(下) 引言《任务取消》由于篇幅较多,拆分了两篇来介绍各种实现取消和中断的机制,以及如何编写任务和服务,使它们能对取消请求做出响应。 Read More
2022-11-11 开发语言-Java►Java并发编程 Java并发编程学习12-任务取消(上) 引言《任务取消》由于篇幅较多,拆分了两篇来介绍各种实现取消和中断的机制,以及如何编写任务和服务,使它们能对取消请求做出响应。 Read More
2022-10-15 开发语言-Java►Java并发编程 Java并发编程学习11-任务执行演示 引言上一篇博文带大家了解了任务执行和 Executor 框架的基础知识,本篇将结合这些内容,演示一些不同版本的任务执行Demo,并且每个版本都实现了不同程度的并发性。 以下的示例是要实现浏览器程序中的页面渲染功能:将 HTML 页面绘制到图像缓存中【为了简便,假设 HTML 页面只包含标签文本、预定义大小的图片和URL】。 Read More
2022-10-03 开发语言-Java►Java并发编程 Java并发编程学习10-任务执行与Executor框架 任务执行何为任务? 任务通常是一些抽象且离散的工作单元。 大多数并发应用程序都是围绕着 “任务执行” 来构造的。而围绕着 “任务执行” 来设计应用程序结构时,首先要做的就是要找出清晰的任务边界。大多数服务器应用程序都提供了一种自然的任务边界选择方式:以独立的客户请求为边界。将独立的请求作为任务边界,既可以实现任务的独立性,又可以实现合理的任务规模。 Read More
2022-09-17 开发语言-Java►Java并发编程 Java并发编程学习8-同步工具类(闭锁、信号量和栅栏) 引言同步工具类可以是任意一个对象,只要它根据其自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,类似地还有信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)。当然 Java 平台类库中还有其他的一些同步工具类,如果这些都不能满足要求,那我们还可以创建自己的同步工具类【这块内容将在后续的博文中会介绍】。 同步工具类封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待,此外还提供了一些方法对状态进行操作,以及另一些方法用于高效地等待同步工具类进入到预期状态。 Read More
2022-09-13 开发语言-Java►Java并发编程 Java并发编程学习7-阻塞队列 引言介绍阻塞队列之前,先来介绍下队列 Queue。Queue 用来临时保存一组等待处理的元素。它提供了几种非阻塞队列实现,如下: ConcurrentLinkedQueue,这是一个传统的先进先出队列。 PriorityQueue,这是一个(非并发的)优先队列。 如上两个队列的操作不会阻塞,如果队列为空,那么获取元素的操作将返回空值。 Read More
2022-09-11 开发语言-Java►Java并发编程 Java并发编程学习6-同步容器类和并发容器 引言本篇开始将要介绍 Java 平台类库下的一些最常用的 并发基础构建模块,以及使用这些模块来构造并发应用程序时的一些常用模式。 Read More
2022-09-08 开发语言-Java►Java并发编程 Java并发编程学习5-对象的组合 引言前面的博文,我们已经了解了关于线程安全和同步的一些基础知识。本篇博文将介绍一些线程安全的组合模式,来帮助我们确保使用这些模式开发的程序是线程安全的。 Read More
2022-07-08 开发框架-Flea►flea-db flea-db使用之JPA分库分表实现 引言在开始本篇的讲解之前,我先来说下之前写过的两篇博文【现在已弃用】:flea-frame-db使用之基于EntityManager实现JPA分表的数据库操作【旧】flea-frame-db使用之基于FleaJPAQuery实现JPA分表查询【旧】 Read More