并发
文章平均质量分 70
zjuwill
记录学习经历,梳理知识框架
展开
-
浅析volatile域
作用 如果对共享变量除了赋值之外并不完成其他操作,那么可以将这些共享变量声明为volatile。 原理 volatile关键字为实例域的同步访问提供了一种免锁机制。如果声明一个域为volatile,那么编译器和虚拟机就知道该域可能被另一个线程并发更新。 private volatile boolean done; public boolean isDone(){ return done原创 2018-01-11 22:06:43 · 239 阅读 · 0 评论 -
浅析atomic原子性
什么是atomic java.util.concurrent.atomic包中的很多类使用很高效的机器级指令(而不是锁)来保证操作的原子性。 有哪些常用的类 查看api可以知道atomic包下含有以下 比较常用的有AtomicBoolean、AtomicInteger、AtomicIntegerArray、AtomicLong等。 看看怎么使用 以AtomicLong举例,得到原创 2018-01-11 23:41:07 · 2283 阅读 · 0 评论 -
Runnable、Callable和Future
概览 在多线程中有Runnable、Callable和Future,那么它们之间有什么联系和区别呢? Runnable Runnable接口只有一个方法: public interface Runnable{ void run() } 所以Runnable是一个函数式接口(只有一个抽象方法),可以用lambda表达式建立一个实例: Runnable r = ()->{t原创 2018-01-12 19:52:47 · 626 阅读 · 0 评论 -
我的Java笔记--线程池
缘由 由于涉及与操作系统的交互,构建一个新的线程是有一定代价的。如果程序中需要大量生命周期很短的线程,应该使用线程池。 线程池 一个线程池(thread pool)中包含许多准备运行的空闲线程,将Runnable对象交给线程池,就会有一个线程调用run方法。当run方法退出时,线程不会死亡,而是在线程池中准备为下一个请求提供服务。 使用线程池还可以减少并发线程的数目。创建大量线程会大大降低原创 2018-01-12 20:25:25 · 248 阅读 · 0 评论