
多线程
花花脸的猫
北京邮电大学 硕士毕业程序媛一枚!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手写单例模式
转自github高星的javaGuide的文章;https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/synchronized.md 面试中面试官经常会说:“单例模式了解吗?来给我手写一下!给我解释一下双重检验锁方式实现单例模式的原理呗! 双重校验锁实现对象单例(线程安全) public class Singleton{...转载 2019-03-26 15:12:09 · 377 阅读 · 0 评论 -
synchronized总结
synchronized是一种同步锁,它可以修饰的对象有: 1 修饰代码块 public class SynchronizedDemo { public void method() { synchronized (this) { System.out.println("synchronized 代码块"); } } } 2 修饰方法 public class Sync...转载 2019-03-26 16:06:33 · 135 阅读 · 0 评论 -
乐观锁与悲观锁
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思...转载 2019-03-26 17:20:14 · 125 阅读 · 0 评论 -
JUC中的原子类总结
Atomic原子类介绍: Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。 分类: 根据操作的数据类型,可以分为4类: 基本数据类型: AtomicInteger:整型原子类 AtomicLong:长整型原子类 AtomicBoolean :布尔型原子类 数组类型 使用原子的方式更新数组里的某个元素 AtomicInt...转载 2019-03-26 21:24:01 · 285 阅读 · 0 评论 -
AQS介绍
AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面。 AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的...转载 2019-03-26 22:02:42 · 202 阅读 · 0 评论 -
并发容器总结
JDK提供的这些容器大部分在java.util.concurrent包中。 ConcurrentHashMap:线程安全的HashMap CopyOnWriteArrayList:线程安全的List,在读多写少的场合性能非常好,远远好于Vector. ConcurrentLinkedQueue:高效的并发队列,使用链表实现。可以看做一个线程安全的 LinkedList,这是一个非阻...转载 2019-03-26 23:23:33 · 118 阅读 · 0 评论 -
java多线程学习-实例变量和线程安全
自定义线程中的实例变量对其他的线程有共享和不共享之分,对于不共享数据:每个线程都有各自的变量,他们对变量进行各自的管理,不存在多个线程访问同一个变量的情况。 看一个例子: public class mythread1 extends Thread{ public static void main(String[] args) { mythread1 aa =new mythread1(...原创 2019-04-22 21:22:47 · 174 阅读 · 0 评论