Java并发编程
Pennhhe
对时间有耐心
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CAS
CAS原创 2019-11-14 10:10:58 · 235 阅读 · 0 评论 -
synchronized 原理
synchronized 原理原创 2019-11-14 10:07:34 · 200 阅读 · 0 评论 -
ThreadLocal原理
ThreadLocal原理原创 2019-11-14 10:07:52 · 164 阅读 · 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 · 153 阅读 · 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 · 150 阅读 · 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 · 183 阅读 · 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 · 140 阅读 · 0 评论 -
【Java并发编程实战】Fork-Join
1. Fibonacci public class Fibonacci extends RecursiveTask<Integer> { int n; public Fibonacci(int n) { this.n = n; } @Override protected Integer compute() { ...原创 2019-09-20 10:00:16 · 173 阅读 · 0 评论 -
【Java并发】4.Java 中的锁
1. Lock 接口 示例代码 Lock lock = new ReentranLock(); lock.lock(); try{ } finally { lock.unlock(); } 1.1 lock 的特性 尝试非阻塞地获取锁 能被中断的获取锁 超时获取锁 1.2 lock的API void lock() void lockInterruptibly() throw Inte...原创 2019-05-12 18:11:12 · 101 阅读 · 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 · 112 阅读 · 0 评论 -
3.Java 并发编程基础
3.Java 并发编程基础 3.1 线程简介 3.1.1 什么是线程 现代操作系统的最小调度单位。 3.1.2 为什么使用多线程 更多的处理核心 更快的响应时间 更好的编程模型 3.1.3 线程的优先级(没什么用) 3.1.4 线程的状态 NEW RUNNABLE BLOCKED WAITING TIMED_WAITING TERMINATED 3.1.5 线程状态的变换 NEW -&g...原创 2019-05-07 07:13:35 · 121 阅读 · 0 评论 -
1. Java 并发机制的底层实现原理
1. Java 并发机制的底层实现原理 1.1 volatile 1.1.1 定义 定义成volatile的字段,Java线程内存模型确保所有的线程看到这个变量的值是一致的。 1.1.2 实现原理 Lock 前缀指令会引起处理器缓存写回到地址 一个处理器的缓存会写到内存会导致其他处理器的缓存无效。 1.2 synchronized 1.2.1 作用 普通的同步方法, 锁住当前实例对象。 静态...原创 2019-05-06 20:45:59 · 112 阅读 · 0 评论
分享