![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
20200701
https://github.com/yq-debug
展开
-
Java内存模型
疑问对原子操作的理解JMM提供的8种原子性操作对指令乱序执行以及并行的理解volatile关键字的作用多线程环境下,A线程如何立即看到B线程的操作结果如何保证数据的一致性、可见性计算机的硬件结构我们所写的代码被编译成字节码之后,从广泛的角度考虑,在电脑中会经过内存---->高速缓冲存储器---->处理器(核/寄存器)三个地方。可见性在多线程环境下,当多个线程同时要操作内存中的变量,如何保证每个线程所操作的变量值为最新的?即A线程对变量操作的结果对其他线程立即可知原创 2020-09-16 23:48:18 · 123 阅读 · 0 评论 -
Java并发编程 —— 同步工具类-闭锁(CountDownLatch)、信号量(Semaphore)、栅栏(CyclicBarrier)
1. 闭锁(CountDownLatch)2. 信号量(Semaphore)3. 栅栏(CyclicBarrier)前言:同步工具类可以是任何一对象,他可以根据自身的状态来协调线程的控制流。同步工具类主要包括 闭锁(如CountDownLatch),栅栏(如CyclicBarrier)信号量(如Semaphore)和阻塞队列(如LinkedBlockingQueue)1. 闭锁...原创 2019-04-03 21:19:34 · 898 阅读 · 0 评论 -
Java并发编程 —— Runnable和Callable
1. Runnable和Callable2. Future和FutureTask1. Runnable和CallableJava多线程有两个重要的接口,Runnable和Callable,分别提供了一个call方法和一个run方法相同点两者都是接口两者都可以用来编写多线程程序两者都可以调用Thread.start()来启动线程不同点两个最大的不同点就是:实现...原创 2019-03-29 11:35:27 · 894 阅读 · 0 评论 -
关于Thread中wait()方法、join()方法、sleep()方法、notify()方法、notifyAll()方法和yield()方法的区别及其联系-含源码和实例
1. join()2. sleep()3. yield()1. join()join()方法作用就是同步,将并行线程变为串行线程如果在线程A中调用线程B的join()方法则在线程B执行结束之后,线程A再继续执行join()方法的底层使用的是wait()方法,所以join()方法是同步方法源码解析: //设置线程等待的时间为毫秒 public final ...原创 2019-09-05 21:01:05 · 366 阅读 · 0 评论