
多线程并发
多线程并发
青春不下线Eflying
积累点滴,终将盆满钵满;温故知新,终将探其究竟。
展开
-
java并发编程之countDownLatch
概念CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier、Semaphore、ConcurrentHashMap和BlockingQueue,它们都存在于java.util.concurrent包下。CountDownLatch这个类能够使一个线程等待其他线程完成各自的工作后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程...原创 2019-12-25 11:58:26 · 238 阅读 · 0 评论 -
java基础之多线程基础
线程的状态新建( new ):新创建了一个线程对象;可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象的 start ()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获 取CPU的使用权;运行( running ):可运行状态( runnable )的线程获得了CPU时间片( timeslice ) ,执行程序代码;阻塞( ...原创 2019-12-25 10:48:16 · 215 阅读 · 0 评论 -
java并发编程之Lock
在java5以后引入了另外一种方式实现同步,就是Locksynchronized锁的缺陷如果一个代码块被synchronized关键字进行修饰了,当一个线程获取了对应的锁,并且执行该代码块的时候,其他线程只能一直等待,直到获取锁的线程释放掉锁,释放锁有两种情况:1:获取锁的线程执行完了该代码块,然后会自动释放锁2:执行线程发生了异常,此时JVM会自定释放...原创 2019-12-04 14:08:43 · 324 阅读 · 0 评论 -
java之AQS使用解析
CAS自旋CAS 是Compare And Swap的简称,具有单一变量的原子操作特性,对比成功后进行交换操作,他是乐观操作,期间会无限循环操作,直到对比成功,然后进行后续交互操作。CAS 包含了三个操作数据,内存位置V、预期值A、新预期值B,如果当前内存V存放的数据和A一样,就认为比较成功,然后把当前V所在的位置设置为B。AQSAbstractQueuedSynchronizer...原创 2020-01-10 15:37:54 · 230 阅读 · 0 评论 -
java并发之同步
同步器的意义多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这种资源被称为临界资源;这种资源可能是:对象、变量、文件等。共享:资源可以由多个线程同时访问可变:资源可以在其生命周期内被修改引出的问题由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变状态的访问。线程并发安全问题解决方案实际上,所有的并发模式在解决线程安全问题时,采用的方案...原创 2019-12-04 14:07:54 · 136 阅读 · 0 评论 -
java之线程
什么是线程现代操作系统在运行一个程序时,会为其创建一个进程。例如,启动一个Java程序,操作系统就会创建一个Java进程。现代操作系统调度CPU的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行。线程...原创 2019-12-03 11:58:52 · 244 阅读 · 0 评论 -
多线程之CPU多核缓存架构与内存屏障
冯诺依曼计算机模型1. 控制器(Control)2. 运算器(Datapath)3. 存储器(Memory)4. 输入(Input system)5. 输出(Output system)CPU内部结构CPU的结构主要由运算器、控制器、寄存器三大块组成。运算器就是中央机构里负责执行任务的部门,也就是专门干活的;而控制器就是中央机构的领导小组,针对不同需要,给...原创 2019-11-28 11:46:36 · 3001 阅读 · 0 评论 -
java基础之多线程的实现方式
实现多线程的方式(四种)继承Thread类 实现Runnable接口 实现Callable接口 使用线程池方式一:继承Thread类public class Thread0 extends Thread{ @Override public void run() { System.out.println("线程名字:"+Thread.currentThread().ge...原创 2019-11-25 16:20:54 · 137 阅读 · 0 评论 -
java并发编程之volatile
volatilevolatile 是一个类型修饰符。volatile 的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略volatile内存语义volatile是Java虚拟机提供的轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻...原创 2019-11-22 12:05:30 · 166 阅读 · 0 评论 -
java并发编程之synchronized
synchronized是Java中的关键字,是java中利用锁机制实现同步的一种方式。锁机制有如下两种特性: 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。互斥性我们也往往称为操作的原子性。 可见性:必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线...原创 2019-11-21 19:36:04 · 610 阅读 · 2 评论 -
幂等性
幂等性幂等这个词原自数学,某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。在HTTP/1.1中,对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候对资源产生了副作用,但是以后的多次请求都不会再对资源产生副作用。这里的副作用是不会对结果产生破坏或者产生不可预料的结果。也就是说,其任意多次执行对资源本身所产生的影响...原创 2019-11-15 10:33:53 · 263 阅读 · 0 评论