九又四分之三站台

0%

Java中有各式各样的锁,大致可以分为以下几类

  • 公平锁 / 非公平锁
  • 可重入锁
  • 互斥锁 / 共享锁
  • 乐观锁 / 悲观锁
  • 分段锁
  • 偏向锁 / 轻量级锁 / 重量级锁
  • 自旋锁
阅读全文 »

Java 通过 ThreadPoolExecutor 提供的3个submit()方法和FutureTask来获取多线程任务结果

ThreadPoolExecutor

3个submit()方法如下

阅读全文 »

在多线程中线程的执行是CPU随机调度的,无法指定线程的执行顺序,比如我们要让多线程按顺序执行输出

阅读全文 »

概述

ThreadPoolExecutor是Executor框架最核心的类,也是线程池的实现类,有以下4个组件构成。

  1. corePool:核心线程池大小
  2. maximumPool:最大线程池大小
  3. BlockingQueue:用来暂时保存任务的工作队列
  4. RejectedExecutionHandler:当ThreadPoolExecutor已经关闭或者已经饱和(达到最大线程池大小并且工作队列已满),execute()方法将调用Handler
阅读全文 »

ThreadLocal是一个关于创建线程局部变量的类。

通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。而使用ThreadLocal创建的变量只能被当前线程访问,其他线程则无法访问和修改。

ThreadLocal支持泛型,创建跟一般类一样new一个对象就可以了。创建完对象后就可以用set方法设置值

阅读全文 »

代理模式

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

首先来了解以下什么是代理模式

先来一个hello接口

1
2
3
4
public interface Hello {

void sayHello(String name);
}
阅读全文 »