java多线程
java多线程
z_believe
这个作者很懒,什么都没留下…
展开
-
18.JAVA的CAS操作
18.CAS18.1CAS简介CAS : 比较当前工作内存中的值和主内存中的值,如果这个值是期望的,那么则执行操作!如果不是就一直循环!缺点:1、 循环会耗时(因为底层是自旋锁)2、一次性只能保证一个共享变量的原子性3、会存在ABA问题package com.CAS;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurren原创 2020-09-06 23:23:45 · 236 阅读 · 0 评论 -
16.单例模式与多线程
16.单例模式与多线程所谓单例,最重要的一个思想就是构造器私有,这样别人就没办法去new这个对象了。单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有原创 2020-09-05 13:15:20 · 202 阅读 · 0 评论 -
09.阻塞队列BlockingQueue接口
9.阻塞队列BlockingQueue接口对于阻塞队列:写入的时候如果队列满了,就必须阻塞等待消费。读取的时候,如果队列是空的,就必须等待生产。BlockingQueue其实和ArrayList是同级的,其最初都继承自Collection9.1ArrayBlockingQueue的四种操作方式抛出异常有返回值,不抛出异常阻塞 等待超时等待添加addoffer()put()offer(,)移除removepoll()take()poll(,)原创 2020-08-27 11:16:36 · 279 阅读 · 0 评论 -
08.读写锁
8.读写锁8.1 ReadWriteLock接口java.util.concurrent.locks 下的Interface ReadWriteLock下的唯一的一个实现类为ReentrantReadWriteLock,可重入读写锁可以被多个线程同时读,但是只能有一个线程去写。独占锁(写锁) 一次只能被一个线程占有共享锁(读锁) 多个线程可以同时占有,这样还能提高程序效率线程之间的读-读 可以共存!线程之间的读-写 不能共存!线程之间的写-写 不能共存!下面的代码M原创 2020-08-27 11:11:17 · 155 阅读 · 0 评论 -
02.集合线程不安全问题+Callable接口+JUC下常用三大辅助类
6.集合线程不安全问题普通的list在多线程的时候会出现这个异常:java.util.ConcurrentModificationException 并发修改异常!6.1List集合的线程不安全解决方案并发下,list是线程不安全的,但是有三种方式去解决它1、List list = new Vector<>();//这个是因为add里面有加锁synchronized2、List list = Collections.synchronizedList(new ArrayList<原创 2020-08-19 21:33:54 · 310 阅读 · 0 评论 -
00.多线程编程JUC总结
一.锁的基本概念原创 2020-08-19 17:28:30 · 124 阅读 · 0 评论 -
01.JUC+锁的基本概念+生产者和消费者问题
1.环境2.JUC简介与线程基础2.1.juc是什么?主要指的就是java.util下面的包:java.util.concurrent2.2.java默认两个线程main和GC2.3.java能否直接调用线程java没办法调用线程,底层是通过调用c++来调用的2.4.并发,并行并发是交替的(多个线程操作同一资源,快速交替,可以充分利用cpu资源)并行是同时的(多核情况下,真正的执行多个任务)2.5.线程状态public enum State { NEW, RUNNA原创 2020-08-19 17:25:14 · 147 阅读 · 0 评论