
Java并发
文章平均质量分 89
sicofield
这个作者很懒,什么都没留下…
展开
-
java并发(1)——JVM原子性、可见性、有序性
JVM原子性、可见性、有序性 Java内存模型是围绕着并发过程中如何处理原子性、可见性、有序性这三个特征来建立的,下面是这三个特性的实现原理: 原子性(Atomicity) 原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始就不会被其他线程干扰。 由Java内存模型来直接保证的原子性变量操作包括read、load、use、assign、store和writ...原创 2017-11-03 17:55:35 · 1410 阅读 · 0 评论 -
java并发(2)——线程的基本操作
线程的基本操作 新建线程 java中建立线程可以有两种方式,分别是继承Thread类和实现Runnable接口。 public static class CreateThread extends Thread{ @Override public void run() { System.out.println("Oh, I am CreateThread...原创 2017-11-07 11:03:57 · 366 阅读 · 0 评论 -
java并发(3)——无锁
无锁类的原理 CAS算法 CAS算法的过程是这样:它包含3个参数CAS(V,E,N)。V表示要更新的变量,E表示预期值,N表示新值。仅当V 值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么 都不做。最后,CAS返回当前V的真实值。CAS操作是抱着乐观的态度进行的,它总是认为自己可以成功完成 操作。当多个线程同时使用CAS操作一个变量时,只有...原创 2018-04-01 20:51:21 · 276 阅读 · 0 评论 -
java并发(4)——ReentrantLock,Condition,Semaphore
ReentrantLock 在Synchronized优化以前,synchronized的性能是比ReenTrantLock差很多的,但是自从jdk1.6开始,Synchronized引入了偏向锁,轻量级锁(自旋锁)后,两者的性能就差不多了,在两种方法都可用的情况下,官方甚至建议使用synchronized,其实synchronized的优化我感觉就借鉴了ReenTrantLock中的CAS技术...原创 2018-04-01 23:46:48 · 1874 阅读 · 0 评论 -
java并发(5)——ReadWriteLock、CountDownLatch、CyclicBarrier、 LockSupport
ReadWriteLock ReadWriteLock是读写分离锁 示例: /** 读写锁对比普通锁,2秒和20秒的区别,性能就是其实就是读操作对写操作的比值 */ public class ReadWriteLockDemo { private static Lock lock=new ReentrantLock(); private static Reentran...原创 2018-04-02 15:21:00 · 380 阅读 · 0 评论 -
java并发(6)—— 线程池
合理利用线程池能够带来三个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。 JD...原创 2018-04-02 17:18:19 · 351 阅读 · 0 评论