
并发编程
fake_coder
这个作者很懒,什么都没留下…
展开
-
JAVA并发编程之详解volatile
可见性可见性的意思是,当一个线程修改共享变量时,其他线程能读到修改后的值。指令重排程序指令的执行顺序有可能和代码的顺序不一致,这个过程就称之为指令重排。作用:JVM能根据处理器的特性,充分利用多级缓存,多核等进行适当的指令重排序,使程序在保证业务运行的同时,充分利用CPU的资源,发挥最大的性能!由于指令重排的特性,为了保证程序在多线程的条件下运行结果能够与单一线程下一致,引入了Happe...原创 2020-05-03 16:43:03 · 193 阅读 · 0 评论 -
java锁之自旋锁
定义:自旋锁(spin lock)是一种非阻塞锁,也就是说,如果某线程需要获取锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取锁。线程反复检查锁变量是否可用。由于线程在这一过程中保持执行,因此是一种忙等待。作用:自旋锁避免了进程上下文的调度开销。线程一直处于用户态,减少了用户态到内核态的开销与损耗(减少了上下文切换)。适用场景:1、多线程2...原创 2020-04-24 18:10:09 · 368 阅读 · 0 评论 -
线程之内存可见性
多个线程可以共享访问和操作相同的变量,但一个线程对一个共享变量的修改,另一个线程不一定马上就能看到,甚至永远也看不到。public class VisibilityDemo { private static boolean ok = false; static class MyThread extends Thread{ @Override pub...原创 2020-04-20 19:29:51 · 262 阅读 · 0 评论