- 博客(8)
- 收藏
- 关注
原创 future的原理
1、主进程不用关心和等待实际处理的情况背景:主线程发送一个请求去买包子(实际会花费2秒钟),期间需要修车(需要5秒钟),需要在最短时间内完成任务。理想状态是5秒钟。主线程需要:发送安排一个人去买包子,一个人修车public static void main(String[] args) throws Exception {FutureClient fu = new FutureClient...
2019-01-06 00:16:42 705
原创 队列
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.LinkedBlockingDeque;import java.util.concurrent.SynchronousQueue;public...
2019-01-05 23:58:05 124
原创 最高效的两种单例写法
第一种:public class InnerSingle {private static class Single{ private static Single singleClass = new Single();}public static Single getInstance(){ return Single.singleClass;}}第二种:public cl...
2019-01-05 19:55:23 294 1
原创 java并发中wait/sleep/join/yelid的区别
sleep:调用sleep()方法的过程中,线程不会释放对象锁;让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态wait:调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象**调用notify()**方法后本线程才进入对象锁定池准备。例子:public class TestD {public static void...
2019-01-05 19:27:44 614
原创 线程之间的通信之wait/notify/notifyAll 详解
1、wait()、notify/notifyAll() 方法是Object的本地final方法,无法被重写。2、wait()使当前线程阻塞,前提是 必须先获得锁,一般配合synchronized 关键字使用,即,一般在synchronized 同步代码块里使用 wait()、notify/notifyAll() 方法。3、 由于 wait()、notify/notifyAll() 在synch...
2019-01-05 19:16:06 370
原创 java中的synchronized和volatile的使用
先来了解一些相关的锁知识java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。java内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A尝试去获得线程B持有的内置锁时,线程A必须等待或者阻塞,知道线程B释放这...
2019-01-05 17:37:00 290
原创 JAVA Future类详解
Future的应用场景在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到之前的执行结果。通过实现Callback接口,并用Future可以来接收多线程的执行结果。Future的类图结构Future接口定义了主要的5个接口方法,有RunnableFuture和SchedualFuture继承这个接口,以及...
2019-01-05 16:27:57 803
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人