JUC并发编程
Juc并发编程
兴趣使然的CV工程师
摆烂高手
展开
-
13. 各种锁的理解
包括synchronized和ReetrantLock 可重入就是说某个线程已经获得某个锁,可以再次获取锁而不会出现死锁 synchronized版本 public class demo1 { public static void main(String[] args) { Phone phone=new Phone(); new Threa...原创 2021-07-11 14:15:00 · 68 阅读 · 0 评论 -
12.CAS和ABA问题
之前的++函数 解决方法-----原子引用 Integer包装类的坑 关于对象引用坑的测试 public class test { public static void main(String[] args) { Integer integer = Integer.valueOf(1100); Integer int...原创 2021-07-10 17:57:00 · 61 阅读 · 0 评论 -
11.单例模式
1.饿汉式 public class Hungry { //如果有很多占内存的数据的话 饿汉式存在浪费内存的问题,因为一上来就把所有的内存加载完毕了 private byte[] data1=new byte[1024*1024]; //私有化构造器 private Hungry(){ } private final static Hungry...原创 2021-07-10 17:02:00 · 52 阅读 · 0 评论 -
10. 异步执行,Volatile关键字,JMM
/** * @author wuyimin * @create 2021-07-10-14:37 * @description * 异步执行,成功回调,失败回调 */ public class demo01 { //今天才发现如果不是静态函数在java类内部的主函数是不能直接调用的 public static void main(String[] args) thro...原创 2021-07-10 16:08:00 · 56 阅读 · 0 评论 -
9. ForkJoin
1.大任务化成小任务 2.工作窃取(一个线程已经结束了就去偷其他线程的任务做) 测试类 public class Test { public static void main(String[] args) throws ExecutionException, InterruptedException { //test1();//481 //test2()...原创 2021-07-09 21:24:00 · 62 阅读 · 0 评论 -
8. 四大函数式接口(重要)
函数式接口就是只有一个方法的接口 Function 传入参数T返回参数R /** * @author wuyimin * @create 2021-07-08-22:14 * @description 函数型接口 只要是函数式接口就可以用lambda表达式简化 */ public class Demo { public static void main(Stri...原创 2021-07-08 22:35:00 · 60 阅读 · 0 评论 -
7. 阻塞队列和线程池
BlockingQueue什么时候会用到:多线程并发处理,线程池 超时等待 同步队列 Excutors创建线程池 public class Demo01 { public static void main(String[] args) { ExecutorService executorService = Executors.newSing...原创 2021-07-08 22:00:00 · 76 阅读 · 0 评论 -
6.读写锁
/** * @author wuyimin * @create 2021-07-08-20:12 * @description 允许同时读,不允许同时写或者同时写和读 */ public class ReadWriteLockDemo { public static void main(String[] args) { MyCache cache = new ...原创 2021-07-08 20:40:00 · 42 阅读 · 0 评论 -
5.Callable接口,和三大常用辅助类
public class CallableTest { public static void main(String[] args) throws ExecutionException, InterruptedException { //如何启动Callable MyThread thread=new MyThread(); //需...原创 2021-07-08 20:07:00 · 64 阅读 · 0 评论 -
5.集合类不安全
//java.util.ConcurrentModificationException并发修改异常 public class ListTest { public static void main(String[] args) { //解决方案一:并发下ArrayList是不安全的 Vector是安全的 //解决方案二:List<String>...原创 2021-07-04 11:58:00 · 37 阅读 · 0 评论 -
3.八锁现象
问题一,二 //1.标准情况下,两个线程先打印发短信还是打电话 1/send 2/call-----》send //2.send延迟4秒,两个线程先打印发短信还是打电话 1/send 2/call-----》先等4秒再send //回答:因为有锁的存在,synchronized锁的对象是方法的调用者,因为再这个方法中对象只有一个phone, // 也就是同一把锁,所以谁先拿到锁谁就先执行 pu...原创 2021-07-03 22:45:00 · 37 阅读 · 0 评论 -
2. Lock锁,生产者消费者问题
公平锁:十分公平,先来后到 非公平锁:可以插队(默认) Synchronized public class SaleTicketDemo01 { //并发,多线程操作同一个资源类,把资源类丢入线程就行 //lambda表达式 (参数)->{代码} public static void main(String[] args) { final...原创 2021-07-03 22:11:00 · 121 阅读 · 0 评论 -
1.什么是JUC
之所以开不了是因为java是操作在虚拟机上的,只能进行本地方法的调用操作线程原创 2021-07-03 19:39:00 · 82 阅读 · 0 评论