摘要:
容器开始启动: 容器运行中: 容器关闭后: 源码: 自定义bean 实现BeanFactoryPostProcessor,Ordered接口的容器后处理器 实现BeanPostProcessor接口的Bean后处理器 实现InstantiationAwareBeanPostProcessor接口的B 阅读全文
摘要:
适用场景 阻塞队列主要用在生产者/消费者的场景,下面这幅图展示了一个线程生产、一个线程消费的场景: 负责生产的线程不断的制造新对象并插入到阻塞队列中,直到达到这个队列的上限值。队列达到上限值之后生产线程将会被阻塞,直到消费的线程对这个队列进行消费。同理,负责消费的线程不断的从队列中消费对象,直到这个 阅读全文
摘要:
线程对象在不同的运行时期有不同的状态,状态信息就存在于State枚举类中。State枚举类的全限定名:java.lang.Thread.State 调用与线程有关的方法是造成线程状态改变的主要原因。 在调用与线程有关的方法后,会进入不同的线程状态,这些状态之间某些是可双向切换的,比如WAITING和 阅读全文
摘要:
目前创建线程的方式主要有以下三种: 继承 java.lang.Thread 实现接口 java.lang.Runnable 实现接口java.lang.Callable<?> 方式一:继承 java.lang.Thread Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实 阅读全文
摘要:
synchronized 关键字的三种使用方式 修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁。 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 。也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类成员( sta 阅读全文