基于html5的购物网站开发软文素材网站

news/2025/9/25 22:27:18/文章来源:
基于html5的购物网站开发,软文素材网站,处理事件seo软件,网站优化连云港哪家强?1.内存可见性 当一个变量被声明volatile时,它会保证被修改的值被立刻更新到主内存中,不会优化到寄存器或缓存中 2.禁止指令重排序 针对被volatile修饰的变量的读写相关指令,是不能被重新排序的 代码演示 class Counter{public int flag; } public class Thread3 {public stati… 1.内存可见性         当一个变量被声明volatile时,它会保证被修改的值被立刻更新到主内存中,不会优化到寄存器或缓存中 2.禁止指令重排序         针对被volatile修饰的变量的读写相关指令,是不能被重新排序的 代码演示 class Counter{public int flag; } public class Thread3 {public static void main(String[] args) throws InterruptedException {Counter counternew Counter();Thread t1new Thread(()-{while (counter.flag0){//方便演示什么都不做}});Scanner scannernew Scanner(System.in);Thread t2new Thread(()-{counter.flagscanner.nextInt();});t1.start();t2.start();t1.join();t2.join();} }上述代码,t1线程在循环检查flag值,成立就执行代码,t2线程更改count值,使得线程1检查结果不成立,测试发现在t2线程代码输入结果后,线程1代码还是不会停止,这是由于t1线程在一个无限循环中检查flag的值并且flag的更新对t1线程不可见因此t1线程可能会永远等待下去即使t2线程已经修改了flag的值。 使用volatile解决 class Counter{public volatile int flag; // 声明为 volatile } public class Thread3 {// ... 其他代码保持不变 ... } 使用volatile后 内存可见性volatile关键字确保了对volatile变量的写操作对其他线程总是可见的。当t2线程更新counter.flag的值时这个更新会立即对其他线程如t1线程可见。这意味着t1线程在检查counter.flag的值时将总是看到t2线程所做的最新更新。禁止指令重排序volatile关键字还禁止了一些可能导致数据竞争的重排序。具体来说它确保了写volatile变量之前的所有读写操作不会被重排序到写操作之后同时确保了读volatile变量之后的所有读写操作不会被重排序到读操作之前。这确保了t2线程中的读取输入和更新flag的操作不会被重新排序从而避免了数据竞争和不一致的行为。 因此如果将Counter类中的flag字段声明为volatile那么t1线程将能够正确地看到t2线程对flag的更新并且不会因为指令重排序而导致数据竞争或不一致的行为。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式链路追踪-SkyWalking - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:【FastMCP】中间件

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Say 题选记(9.21 - 9.27)

P2048 [NOI2010] 超级钢琴 如何求长度在 \([L,R]\) 的子串中,子串和前 \(k\) 大的那些。 首先显然可以转化为前缀和。考虑 \(k = 1\) 的情况,把以 \(i(1 \le i \le n)\) 为右端点,\(j \in [i - R + 1, i - L + 1]\)…

3D 高斯训练速度和消耗 - MKT

3D 高斯训练速度和消耗 SEELE: A Unified Acceleration Framework for Real-Time Gaussian Splatting https://arxiv.org/pdf/2503.05168

做哪一类网站容易有排名中国建设银行网站会员注册信息补充

电脑崩溃之后,我发现维护系统还是很重要的一件事情。比如软件尽可能装D盘,C盘(系统盘)尽可能不要存储数据等等。接着,就是如何让系统更易用,因此我在这里分享我的使用方式,以后就可以随便重装系…

怎么设计个人网站在万网上域名了怎么做网站

目录 第一章、Java中的for循环介绍for循环for-each/增强for循环嵌套for循环 第一章、遍历List集合的几种方式简单的for循环增强型for循环Iterator迭代器ListIterator列表迭代器while循环Iterable.forEach()方法Stream.forEach()方法 第一章、Java中的for循环介绍 for循环 ①普…

完整教程:【PyTorch实战:文本分类】23、BERT文本分类实战指南:从原理到PyTorch落地

完整教程:【PyTorch实战:文本分类】23、BERT文本分类实战指南:从原理到PyTorch落地pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; …

Linux网络:运用UDP实现网络通信(网络套接字的创建绑定)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

常见进制

D:/study/C语言 devc/test9.c

9.25总结

今天是9.25,今天是星期四,今天上午上了一节数据结构和一节跆拳道课,跆拳道课上学了好多动作,还教我们劈叉,锻炼我们的韧带。下午就没有课程安排了,中午和朋友打了一会儿游戏,然后睡了一觉,醒来之后,去教室学了…

做受视频播放网站wordpress实现文章连载目录

感情是偏执的 越爱越是偏执的 不相信我看到的 硬要说裂缝不过 是皱褶 怎么先炽热的却先变冷了 慢热的却停不了还在沸腾着 看时光任性快跑随意就转折 慢冷的人啊 会自我折磨 冲动的人向来听不见挽留 这世界大得让你很难不旅游 浪漫让你温柔 也让你最惹人 泪流 …

proxifier联合burpsuite抓包小程序,但是小程序连不上网解决办法(亲测)

找了网上好多教程都没找到对应我这种情况的解决方法,我这个方法希望能帮到跟我情况一样的同学问题描述 之前看小迪的课程的时候学到过burpsuite加proxifier联合抓小程序的包,当时也复现成功了,后面在看到小程序资产…

完整教程:C语言——函数(超详细分析)

完整教程:C语言——函数(超详细分析)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

大 LCP 时代(stupid.*)

大 LCP 时代(stupid.*) 题目描述 LCP 就是传说中的最长公共前缀,至于为什么要加上一个大字,那是因为…你会知道的(有大病)。 首先,求LCP就要有字符串。既然那么需要它们,那就给出n个字符串好了。 于是你需要回答…

网站中的滑动栏怎么做的四川建设网网

虚拟技术十分热门.虚拟技术是将一台物理硬件计算机虚拟成多台软件计算机.每一台虚拟出来的软件计算机(以下叫做虚拟机)用起来都就象是在用那台被虚拟的硬件计算机(以下叫做真实机)完全一样.当然这样的说法忽略了虚拟机相对于真实机在执行效益上不可避免所存在的损失.所以如何减…

实用指南:Python实现手榴弹爆炸算法(Grenade Explosion Method, GEM)(附完整代码)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Day08-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\array-ArrayDemo01~07

数组首先要声明数组变量才能使用如dataType[] arrayRefVar; java语言中使用new操作来创建数组,如dataType[ ] arrayRefVar = new dataType[arraysize] 数组通过索引访问,索引从0开始内存分析堆:存放new的对象和数组…

yolov10_float16.tflite TO yolov10_int8.tflite

使用google colab平台1. 安装ultralytics!pip install ultralytics2. 导入yolo并从ultralytics加载yolov10n.ptfrom ultralytics import YOLO model = YOLO("https://github.com/ultralytics/assets/releases/dow…

ansible注意的和错误代码分析

一、需要注意的点分清楚这个是主控节点还是被控节点的操作,有的时候是一个文件从主控到被控节点,还是被控节点的文件到主控节点上面了剧本执行报错代码 # 仔细看,报错的原因就是ansibel_lvm 未定义,写错了变量名TA…

用 Rust 和 Tesseract OCR 识别验证码

一、背景介绍 Rust 是一种系统级编程语言,以性能和安全性著称。在自动化测试和数据分析场景中,验证码识别是一个常见挑战。结合 Tesseract OCR,我们可以使用 Rust 构建一个高效的验证码识别工具。本文将介绍如何使用…