Java并发编程
Pennhhe
对时间有耐心
展开
-
CAS
CAS原创 2019-11-14 10:10:58 · 127 阅读 · 0 评论 -
synchronized 原理
synchronized 原理原创 2019-11-14 10:07:34 · 150 阅读 · 0 评论 -
ThreadLocal原理
ThreadLocal原理原创 2019-11-14 10:07:52 · 121 阅读 · 0 评论 -
【Java并发编程】锁
2. Java 中的锁2.1 Lock 接口锁能防止多个线程同时操作共享变量。Java刚开始使用synchronized关键字实现锁功能。Lock 接口扩展了锁的功能,增加了中断、超时放弃的支持。2.1.1 使用模式Lock lock = new ReentrantLock();lock.lock();try { //对共享变量进行操作}finally { ...原创 2019-10-18 10:31:34 · 85 阅读 · 0 评论 -
【Java 并发编程实战】构建自定义同步工具
1. 管理状态依赖可阻塞的状态依赖操作。void blockingAction() throws InterruptedException() { acquire lock on object state while (precondition does not hold) { release lock wait until precondition mig...原创 2019-09-29 13:11:26 · 103 阅读 · 0 评论 -
【Java 并发编程实战】Semaphore
1. 编程模型2. 示例package com.hp.learn.concurrency.lock.semaphore;public class Shared { static int count = 0;}package com.hp.learn.concurrency.lock.semaphore;import lombok.extern.slf4j.Slf4j;...原创 2019-09-23 11:18:51 · 132 阅读 · 0 评论 -
【Java并发编程】ReentrantLock
1. 编程模型 public void some_method() { reentrantlock.lock(); try { //Do some work } catch(Exception e) { e.printStackTrace(); } finally { reentrantlock.unlock(); ...原创 2019-09-23 10:16:05 · 97 阅读 · 0 评论 -
【Java并发编程实战】Fork-Join
1. Fibonaccipublic class Fibonacci extends RecursiveTask<Integer> { int n; public Fibonacci(int n) { this.n = n; } @Override protected Integer compute() { ...原创 2019-09-20 10:00:16 · 118 阅读 · 0 评论 -
【Java并发】4.Java 中的锁
1. Lock 接口示例代码Lock lock = new ReentranLock();lock.lock();try{ } finally { lock.unlock();}1.1 lock 的特性尝试非阻塞地获取锁能被中断的获取锁超时获取锁1.2 lock的APIvoid lock()void lockInterruptibly() throw Inte...原创 2019-05-12 18:11:12 · 67 阅读 · 0 评论 -
【JVM】02 OOM(OutOfMemoryError)异常
1. Java 堆溢出Java 堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots 和对象之间有可达路径,避免GC回收清除对象。那么在对象数量到达最大堆的容量限制后,就会产生内存异常。public class HeapOOM { static class OOMObject{} public static void main(String[] args) {...原创 2019-05-21 14:13:07 · 70 阅读 · 0 评论 -
3.Java 并发编程基础
3.Java 并发编程基础3.1 线程简介3.1.1 什么是线程现代操作系统的最小调度单位。3.1.2 为什么使用多线程更多的处理核心更快的响应时间更好的编程模型3.1.3 线程的优先级(没什么用)3.1.4 线程的状态NEWRUNNABLEBLOCKEDWAITINGTIMED_WAITINGTERMINATED3.1.5 线程状态的变换NEW -&g...原创 2019-05-07 07:13:35 · 83 阅读 · 0 评论 -
1. Java 并发机制的底层实现原理
1. Java 并发机制的底层实现原理1.1 volatile1.1.1 定义定义成volatile的字段,Java线程内存模型确保所有的线程看到这个变量的值是一致的。1.1.2 实现原理Lock 前缀指令会引起处理器缓存写回到地址一个处理器的缓存会写到内存会导致其他处理器的缓存无效。1.2 synchronized1.2.1 作用普通的同步方法, 锁住当前实例对象。静态...原创 2019-05-06 20:45:59 · 77 阅读 · 0 评论