随笔分类 - 并发编程
线程、线程池、同步、高并发
摘要:Future 在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到之前的执行结果。通过实现Callback接口,并用Future可以来接收多线程的执行结果。Future表示一个可能还没有完成的异步任务的结果,针对这
阅读全文
摘要:锁: Java 中锁的种类分为:偏向锁、自旋锁、轻量级锁、重量级锁 锁的使用方式为:先提供偏向锁,不满足的时候,升级为轻量级锁,如果再不满足的时候,膨胀成重量级锁。自旋锁是一个过渡的状态,不是一种实际的锁类型。锁可以升级不可以降级。 偏向锁 如果代码中不会存在竞争的关系的时候,为了让线程获得锁的代价
阅读全文
摘要:ThreadPoolExecutor继承了AbstractExecutorService,该抽象类为线程池提供了默认实现。后面讲到线程池代码时详细说明。 构造函数 ThreadPoolExecutor有很多重载的构造函数,所有构造函数最终都调用了一个构造函数,只是有些构造函数有默认参数而已,看下最终
阅读全文
摘要:synchronize synchronized锁什么?锁对象。 可能锁对象包括: this, 临界资源对象(Object),Class类对象。 同步 - 原子性 加锁的目的: 就是为了保证操作的原子性 同步方法 同步方法锁定的是当前对象。当多线程通过同一个对象引用多次调用当前同步方法时,需同步执行
阅读全文

浙公网安备 33010602011771号