首页 > 其他 > 详细

并发编程

时间:2020-04-01 09:53:45      阅读:51      评论:0      收藏:0      [点我收藏+]

Java并发,说一说了解哪些,volatie个synchronized的区别

volatile本质是告诉JVM当前变量在寄存器中的值是不确定的,需要从主存中读取。synchronized则是

锁定当前变量,只有当前线程可以访问该变量,其它线程被阻塞。

volatile仅能使用在变量级别,synchronized则可以使用在变量、方法。

volatile仅能实现变量修改的可见性,而synchronized则可以保证变量修改的可见性和原子性

定义long或double  时,如果使用volatile关键字(简单的赋值与返回操作),就会获得原子性。

(常规状态下,这两个变量由于其长度,其操作不是原子的)

volatile不会造成线程阻塞,synchronized造成线程阻塞

使用volatile而不是synchronized的唯一安全情况是类中只有一个可变的域。

BLOCKED 和 WAIT的区别

线程的状态

技术分享图片

中断机制,isInterrupted和interrupted的区别,哪些状态可以中断并抛出InterruptedException

intertrupte()在阻塞状态抛出异常,再补货后修改变量。

isinterrupted用来判断状态。

线程的Interrupt中断,其实只是修改线程的中断位,并不会真正停止线程。

(1)可以通过Thread的类方法interrupted检查当前线程是否中断,但是会重置标志位

(2)通过调用Thread的普通方法isInterrupted来检查中断位,不会重置标志位。

讲一讲并行和并发

两个进程之间哪些东西是独立的

线程同步的方式

一、不可变  二、互斥同步 三、非阻塞同步(CAS2. AtomicInteger。ABA)

四、无同步方案(栈封闭,线程本地存储,可重入代码

可重入锁怎么实现

单核单线程CPU是否可以运行多线程程序?多线程与CPU单线程区别(系统线程和用户线程)?

什么是线程不安全

是指不提供加锁机制保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据

两个进程之间哪些东西是独立的

并发编程

原文:https://www.cnblogs.com/HHHzhihao/p/12609887.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!