
并发编程
。。。。。。
锦鱼不忘旧时晨
用一句话不能解释的技术,说明你还没有真正理解它。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解volatile关键字(volatile特点,happens-before,8种方式实现单例,volatile使用场景,volatile和synchronized的区别)
一、volatile的特点1、保证可见性package com.JUC编程.volatile0;import java.util.concurrent.TimeUnit;public class demo1 { private static volatile Boolean flag=true; public static void main(String[] args)...原创 2020-05-06 15:48:02 · 320 阅读 · 0 评论 -
CAS(原理,手动实现CAS,ABA问题,解决ABA问题)
1、JDK1中的CASCAS:全称“CompareAndSwap”,中文翻译过来为“比较并替换”定义:CAS操作包含三个操作数——内存位置(V),期望值(A)和新值(B),如果内存中的值和期望值匹配,那么处理器会自动将位置值更新为新值。java中提供了对CAS操作的支持,具体在sun.misc.unsafe类中,声明如下: public final native boolean comp...原创 2020-04-28 22:50:06 · 629 阅读 · 0 评论 -
深入理解synchronized(作用,特性,原理,Java对象布局,锁的升级,如何正确的使用synchronized)
1、synchronized的作用(1)保证可见性可见性:一个线程对共享变量进行修改,另一个线程需要立即获取到被修改后的值。package com.synchionzed;import java.util.concurrent.TimeUnit;public class demo1 { /* * 可见性问题 * */ private static bo...原创 2020-04-27 19:54:21 · 912 阅读 · 0 评论 -
JavaSE——多线程(二)(死锁,等待唤醒机制,内存可见性,CAS算法,sleep()和wait()的异同,线程池,定时器)
1.死锁(1)概述是两个或两个以上的线程在执行的过程中,因争夺资源产生的一种互相等待现象,如果出现了同步嵌套,就容易出现死锁问题。举例:中国人和美国人一起吃饭中国人使用的筷子美国人使用的刀和叉中国人获取到了美国人的刀美国人获取到了中国人的一根筷子那么美国人和中国人都无法将吃饭进行下去(2)代码演示package com.westmo3.demo3;public class...原创 2020-02-25 16:43:47 · 249 阅读 · 0 评论 -
JavaSE——多线程(一)(进程和线程概念,多线程安全问题,同步代码块,同步方法,Lock锁)
一.线程和进程的概念1.进程概念:进程就是正在运行的程序,是系统进行资源分配和调用的独立单位,每一个进程都有他自己的内存空间和系统资源。多进程的意义:单进程计算机只能做一件事情,而我们现在的计算机都可以一遍玩游戏(游戏进程),一遍听音乐(音乐进程),我们常见的操作系统都是多进程操作系统,例如Windows,Linux等。思考:对于单核计算机来说,游戏进程和音乐进程是同时进行的吗?当然不是...原创 2020-02-23 18:16:55 · 224 阅读 · 0 评论 -
JUC编程——(四)线程池(七大参数,四种拒绝策略,自定义一个线程池,合理设置最大线程数,线程池队列的选择)
线程池1、三大方法public class Demo { public static void main(String[] args) { ExecutorService executorService = Executors.newSingleThreadExecutor();//1.创建单个线程的线程池 ExecutorService executo...原创 2020-04-13 21:39:59 · 746 阅读 · 0 评论 -
JUC编程——(三)(ReadWriteLock,BlockingQueue,SynchronousQueue)
1、ReadWriteLockpackage com.JUC编程.代码;import java.util.HashMap;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class ReadWriteLockDe...原创 2020-04-13 15:09:28 · 149 阅读 · 0 评论 -
JUC编程——(二)(深入理解锁—8锁现象,集合类不安全,走进Callable,常用辅助类(CountDownLatch,CyclicBarrier,Semaphore))
一、深入理解锁1、第一组package com.JUC编程.代码;import java.util.concurrent.TimeUnit;/** 1.标准情况下,输出: 1/发短信 2/打电话* 2.sendmsg延迟4秒,输出: 1/发短信 2/打电话* */public class MyDemo8 { public static void main(String[...原创 2020-04-12 12:54:56 · 339 阅读 · 0 评论 -
JUC编程——(一)(线程的状态,sleep和wait的区别,Lock锁,synchronized和Lock的区别,虚假唤醒,Lock版生产者消费者问题,Condition实现精准通知唤醒)
1、什么是JUC?JUC就是java.util.concurrent。2、进程和线程进程:一个应用程序,双击qq就是qq进程启动。线程:一个进程中包含多个线程,qq中有多个任务,你同事可以和多个人聊天,这每个任务就是一个线程。Java默认有一个线程?两个,main线程和GC线程。Java真的可以开启线程吗?不能,我们可以看一下源码://同步方法块 很安全public sync...原创 2020-04-09 22:45:04 · 449 阅读 · 0 评论