摘要: 阻塞队列支持生产者-消费者这种设计模式。该模式将“找出需要完成的工作”与“执行工作”这两个过程分离开来,并把工作项放入一个“待完成“列表中以便在随后处理,而不是找出后立即处理。生产者-消费者模式能简化开发过程,因为它消除了生产类和消费类之间的代码依赖性。 阅读全文
posted @ 2017-09-13 22:08 Hxinguan 阅读(512) 评论(0) 推荐(0) 编辑
摘要: 1、同步容器类 同步容器类包括Vector和Hashtable,是早期JDK的一部分,这些类实现的方法是:将它们的状态封装起来,并对每个共有的方法进行同步,使得每个线程只有一个线程能访问它们。 1.1 、同步容器类问题 同步类容器都是线程安全的,但在某些场景下可能需要加锁来保护复合操作。复合类操作如 阅读全文
posted @ 2017-09-10 12:19 Hxinguan 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 我们不希望对每一次的内存访问都进行分析以确保程序是线程安全的,而是希望将一些现有的线程安全组件组合为更大规模的组件或者程序,这里介绍一些组合模式,这些组合模式能够使一个类更容易成为线程安全的,并且在维护这些类时不会无意中破坏类的安全性保证。 1、设计线程安全的类 在设计线程安全类的过程中,需要包含以 阅读全文
posted @ 2017-09-04 10:46 Hxinguan 阅读(721) 评论(0) 推荐(0) 编辑
摘要: 1、不变性 某个对象在被创建后其状态就不能被修改,那么这个对象就称为不可变对象,不可变对象一定是线程安全的。不可变对象很简单。他们只有一种状态,并且该状态由构造函数来控制。 当满足以下条件时,对象才是不可变的:(1)、对象创建以后其状态就不能改变;(2)、对象的所有域都是final类型;(3)、对象 阅读全文
posted @ 2017-09-03 22:32 Hxinguan 阅读(872) 评论(0) 推荐(0) 编辑
摘要: 线程封闭:当访问共享的可变数据时,通常需要同步。一种避免同步的方式就是不共享数据。如果仅在单线程内访问数据,就不需要同步,这种技术称为线程封闭(thread confinement) 线程封闭技术一个常见的应用就是JDBC的Connection对象,JDBC规范并没有要求Connection对象必须 阅读全文
posted @ 2017-09-03 00:19 Hxinguan 阅读(3072) 评论(0) 推荐(0) 编辑
摘要: 1、volatile关键字 Java语言提供了一种稍弱的同步机制,即volatile变量。被volatile关键字修饰的变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在每次读取volatitle类型变量时总会返回最新的值,而不是从寄存器中获取。 加锁机制既然可以确保可见性又可以确保原子性, 阅读全文
posted @ 2017-08-31 23:06 Hxinguan 阅读(575) 评论(0) 推荐(0) 编辑
摘要: “共享”意味着变量可以由多个线程同时访问,而“可变”则意味着变量的值在其周期内是可以发生变化的。 一个对象是否是线程安全的,取决于它是否被多个线程访问。 当多个线程的访问某个状态变量并且其中某一个线程执行写操作时,必须采用同步机制来协同这些线程对变量的访问。java的同步机制是关键字synchron 阅读全文
posted @ 2017-08-30 23:04 Hxinguan 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 我们在创建maven web项目的时候,默认只有src/main/resources这个source folder,我们按照maven结构添加src/main/java和src/test/java等source folder时,会报the folder is already .... 解决办法 建立 阅读全文
posted @ 2017-02-26 21:42 Hxinguan 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 1. web.xml文件的简单详解 在web环境中, spring MVC是建立在IOC容器的基础上,要了解spring mvc,首先要了解Spring IOC容器是如何在web环境中被载入并起作用的。 spring IOC是一个独立的模块,并不是直接关联web容器的,在web环境中使用IOC容器, 阅读全文
posted @ 2017-02-16 22:36 Hxinguan 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 1. AOP的概念 AOP 是Aspect-Oriented Programming(面向方面编程或者面向切面)的简称,维基百科对其解释如下: Aspect是一种新的模块化机制,用来描述分散在对象、类或者函数中的横切关注点。从关注点分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使解决特定 阅读全文
posted @ 2017-02-13 22:25 Hxinguan 阅读(367) 评论(0) 推荐(0) 编辑