当前位置: 首页 > news >正文

网站文章页的排名怎么做视频网站推广

网站文章页的排名怎么做,视频网站推广,合肥企业快速建站,如何知道网站是否备案过Volatile 作用:保证变量的可见性,有序性(禁止指令重排序)。不保证原子性。 如何保证可见性的? 场景:每个 线程 下都有一块 工作内存。要使用变量需要从 主内存 中把 变量 读取出来,使用完成后写…

Volatile

作用:保证变量的可见性,有序性(禁止指令重排序)。不保证原子性。

如何保证可见性的?

场景:每个 线程 下都有一块 工作内存。要使用变量需要从 主内存 中把 变量 读取出来,使用完成后写入到主内存。如果这个时候在 工作内存 中修改,还没有来得及写入 主内存,其他的线程从主内存中读取又读取到旧的数据了,那么这个时候就是不可见的。

Volatile 是如何做的?

原理:

  • 当对 volatile 变量进行 写操作 的时候,会立马将工作内存中的值写入到主内存中。
  • 当对 volatile 变量进行 读操作 的时候,会将工作线程内的变量值置为无效,然后重新从主内存中获取。

image-20240827235947300

禁止指令重排序

指令重排序 通常指的是 编译器运行时环境 对程序代码中指令的顺序进行调整。

这个是编译时 Jvm 对代码的一个优化,他认为这部分命令重新排序后执行效率会更高。

多核 CPU 也会对指令进行重排序以实现更好的并行处理。

volatile 作用:表示该变量的操作禁止重排序这种优化。使得指令可以按照编码顺序执行,避免在并行情况下的逻辑紊乱。

样例

public class VolatileDemo {private static  boolean flag = true;public static void main(String[] args) throws InterruptedException {new Thread(() -> {System.out.println("Start");while (flag) {}System.out.println("End");}).start();// 休眠一秒TimeUnit.SECONDS.sleep(1);flag = false;}
}

image-20240828001013953

程序一直没有结束,这就是主线程修改后其他线程不可见导致的。

加下 volatile 关键字后,能够正常结束了。

    private static volatile boolean flag = true;

image-20240828001002576

不加 Volatile 就不能保证可见性吗?

答案:不是!!!

还有那些情况可以让变量可见呢?

synchronized 互斥锁

原理:在获得互斥锁之后,会清除工作内存,重新从主内存中获取值到工作内存中,使用完成后将工作内存的值写到主内存,释放互斥锁。

修改样例

// 去掉 volatile
private static  boolean flag = true;public static void main(String[] args) throws InterruptedException {new Thread(() -> {System.out.println("Start");while (flag) {// 增加打印日志System.out.println(flag);}System.out.println("End");}).start();TimeUnit.SECONDS.sleep(1);flag = false;
}

image-20240828001855814

这样也能正常结束了。这是因为 System.out.println() 内部使用了 synchronized 关键字。

Sleep 休眠

让线程休眠触发 cpu 切换线程的机制,这样不可见的线程再重新唤醒后会重新从主内存中读取值

public static void main(String[] args) throws InterruptedException {new Thread(() -> {System.out.println("Start");while (flag) {try {// 让不可见的线程休眠一下,cpu唤醒后会重新从主内存中读取值Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}System.out.println("End");}).start();TimeUnit.SECONDS.sleep(1);flag = false;
}

image-20240828002440759

http://www.ds6.com.cn/news/20441.html

相关文章:

  • 浙江华企做的网站效果如何惠州seo建站
  • wps文字可以做网站吗seo黑帽是什么
  • ps做特效哪个网站好百度seo外包
  • 前端做网站一般用什么框架上海优化外包公司排名
  • 阿里云服务器可以做彩票网站吗seo优化顾问服务阿亮
  • wordpress首页广告济南seo优化公司助力排名
  • 南通企业网站seo2023网络营销成功案例
  • wordpress 文章和tag网络优化是做什么的
  • 临淄信息港发布信息厦门seo搜索引擎优化
  • 做pc端网站公司佛山关键词排名工具
  • 网站建设的er图怎么画台湾搜索引擎
  • 桂林做网站的公司常州seo第一人
  • 做特价的网站网络推广网站排行榜
  • 华为云云速建站怎样找培训班一般在什么平台
  • 蛋糕行业网站建设方案最近最新的新闻
  • 全国监理工程师查询网谷歌优化培训
  • vps搭建网站是什么意思网站优化及推广
  • 网站建设与网站制作合肥关键词排名
  • 站长收录查询阿里指数数据分析平台官网
  • 品牌网站首页设计百度官网下载电脑版
  • 潍坊网站模板在哪关键词推广工具
  • 广西网站建设哪里有免费创建网站的平台
  • 成都网站制作中国互联站长素材官网
  • 专做兼职的网站推广公众号的9种方法
  • 制作网站品牌公司简介百度指数在线查询前100
  • 免费做海报的网站企业宣传片文案
  • wordpress网站模板怎么用冬镜seo
  • 网站备案icp备案网络营销理论
  • 网站要怎样做才能获得市场份额新乡百度关键词优化外包
  • 自己怎么制作logoseo关键词推广话术