随笔分类 - Java CCurrent
Some Knowledge About Java Concurrency
摘要:一、重入锁二、读写锁三、悲观锁、乐观锁3.1 悲观锁3.2 乐观锁3.3 CAS操作方式3.4 CAS算法理解3.5 CAS(乐观锁算法)3.6 CAS缺点四、原子类4.1 概述4.2 常用原子类五、分布式锁一、重入锁锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现,如synchronized(重量级) 和 ReentrantLock(轻量级)等等,这些已经写好提供的锁为我们开发提供...
阅读全文
摘要:一、概述1.1 什么是多线程之间通讯?1.2 案例代码实现解决线程安全问题二、等待通知机制2.1 示例2.2 wait与sleep区别三、Lock锁3.1 概述3.2 等待/通知机制(Condition)3.3 Lock与synchronized 比较一、概述1.1 什么是多线程之间通讯?多线程之间通讯,其实就是多个线程在操作同一个资源,但是操作的动作不同。1.2 案例需求:第一个线程写入(inp...
阅读全文
摘要:一、概述1.1 什么是线程安全?1.2 案例1.3 线程安全解决办法:二、synchronized2.1 概述2.2 同步代码块2.3 同步方法2.4 静态同步函数2.5 总结三、多线程死锁3.1 什么是死锁3.2 如何避免四、Threadlocal4.1 什么是Threadlocal4.2 案例4.3 ThreadLoca实现原理4.4 内存泄漏问题五、Java内存模型5.1 主内存和工作内存5...
阅读全文
摘要:一、概述1.1 线程与进程区别1.2 多线程引发的性能问题二、多线程创建方式2.1 第一种-继承Thread类2.2 第二种-实现Runnable接口2.3 第三种-实现Callable接口2.4 常用线程构造函数2.5 使用继承Thread类还是使用实现Runnable接口好?三、线程基础知识3.1 常用线程API概述3.2 守护线程3.3 yield方法3.4 join()方法作用3.5 优先...
阅读全文
摘要:CallableFuture模式Callable 在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或共享存储区以及线程通信的方式实现获得任务结果的目的。 不过,Java中,也提供了使用Callable和Future来实现获取任务结果的操作。Callable...
阅读全文
摘要:并发队列阻塞队列与非阻塞队ConcurrentLinkedQueueBlockingQueueArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueueSynchronousQueue使用BlockingQueue模拟生产者与消费者线程池什么是线程池线程池作用线程池四种创建方式newCachedThreadPoolnewFixedThrea...
阅读全文
摘要:并发包(计数器)CountDownLatch(屏障)CyclicBarrier(计数信号量)Semaphore案例:需求:代码:并发包(计数器)CountDownLatch CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这...
阅读全文