随笔分类 - Java多线程
摘要:Java锁Lock的种类 我们平时听到用到的锁有很多种:公平锁/非公平锁、可重入锁/不可重入锁、共享锁/排他锁、乐观锁/悲观锁、分段锁、偏向锁/轻量级锁/重量级锁、自旋锁。其实这些都是在不同维度或者锁优化角度对锁的一种叫法,我们在程序中用到的也就那么几种,比如synchronized,Reentra
阅读全文
摘要:Fork/Join框架 1. Fork/Join框架简介 Fork/Join框架是java7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果得到大任务结果的框架。Fork指的就是把一个大任务分割成若干子任务并行的执行,Join就是合并这些子任务的执行结果,最
阅读全文
摘要:Java锁优化 应用程序在并发环境下会产生很多问题,通常情况下,我们可以通过加锁来解决多线程对临界资源的访问问题。但是加锁往往会成为系统的瓶颈,因为加锁和释放锁会涉及到与操作系统的交互,会有很大的性能问题。那么这个时候基于锁的优化手段就显得很重要了。 一般情况下,可以从两个角度进行锁优化:对单个锁算
阅读全文
摘要:Java线程池 1. 简介 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互,这个时候使用线程池可以提升性能,尤其是需要创建大量声明周期很短暂的线程时。Java中的线程池是运用场景最多的并发框架。 线程池类似于数据库连接池,在系统启动的时候即创建大量空闲的线程,可以将一个线程任务提交给
阅读全文
摘要:AtomicInteger的原理 java的并发原子包里面提供了很多可以进行原子操作的类,比如: AtomicInteger AtomicBoolean AtomicLong AtomicReference 等等,一共分为四类:原子更新基本类型(3个)、原子更新数组、原子更新引用和原子更新属性(字段
阅读全文
摘要:Java实现线程的三种方式和区别 Java实现线程的三种方式: 1. 继承Thread 2. 实现Runnable接口 3. 实现Callable接口 区别: 1. 第一种方式继承Thread就不能继承其他类了,后面两种可以; 2. 使用后两种方式可以多个线程共享一个target; 3. Calla
阅读全文

浙公网安备 33010602011771号