Spring之IOC
Spring是轻量级的JavaEE开源框架,可以降低企业应用开发的复杂性。
目前在做一个简单的体育赛事资讯展示的项目,我主要负责后端,向安卓端和Web管理端提供RESTful的接口,主要使用的技术是spring boot。这是我第一次使用spring boot搭建后端,实践永远是学习计算机知识最好的方式,这次项目也让我学到了很多spring boot的知识,因此准备用一个系列的博客进行记录。当然我对spring boot的理解还很粗浅,可能更多的介绍会关注于怎么使用这个框架,而不是框架背后的原理。当然我也会写一些关于框架原理的体会,但仅仅是体会而已,毕竟我还没有那个水平从源码或设计思路上去进行理解。
Worker Thread模式名称的来源是工厂的工作流程。工人的数目是固定的,每个工人会独立获取任务进行工作,完成自己的工作后再获取新的工作,如果没有新的工作,就等待工作的到来。我们可以用工作线程来建模工人,用一个带有同步控制的Channel类来建模工人获取工作的地方。因为可用的工作线程的数目是确定的,这种模式也称为线程池模式。我们可以发现,Worker Thread模式和之前的Thread Per Message有很大的相似之处,Worker Thread模式中工作线程的数目是实现确定的,这些工作线程也一般是在开始就初始化好的;而之前提到的模式中,每有一项新任务到达,会创建一个新的进程,工作完成之后,创建的进程就会停止。具体哪种模式更好,取决于具体的场景。除了Thread Per Message模式,我们可以发现,Worker Thread模式中关键的Channel类和生产者消费者模式中的Channel的控制方式几乎相同,准确的说,Worker Thread就是使用生产者消费者模式进行工作的提交与获取。
这部分主要介绍Java相关的多线程知识以及多线程相关的常用设计模式,第一部分主要是Java多线程的基础,线程以及并发相关的概念就不在这里赘述了,主要针对Java相关的内容。
这一系列是我学习设计模式过程中的总结与感受。当然许多人都说设计模式需要大量的实践才能真正学会,因此目前写下的一定是一些很粗浅的内容。在以后的开发过程中,我会进一步记录我对设计模式的体会。