当前观察:Volatile详解 现代计算机的内存模型的详情介绍
Volatile可能是面试里面必问的一个话题吧,对他的认知很多朋友也仅限于会用阶段,今天我们换个角度去看看。
先来跟着丙丙来看一段demo的代码:
(资料图片仅供参考)
你会发现,永远都不会输出有点东西这一段代码,按道理线程改了flag变量,主线程也能访问到的呀?
为会出现这个情况呢?那我们就需要聊一下另外一个东西了。
JMM(JavaMemoryModel)
JMM:Java内存模型,是java虚拟机规范中所定义的一种内存模型,Java内存模型是标准化的,屏蔽掉了底层不同计算机的区别(注意这个跟JVM完全不是一个东西,只有还有小伙伴搞错的)。
那正式聊之前,丙丙先大概科普一下现代计算机的内存模型吧。
现代计算机的内存模型
其实早期计算机中cpu和内存的速度是差不多的,但在现代计算机中,cpu的指令速度远超内存的存取速度,由于计算机的存储设备与处理器的运算速度有几个数量级的差距,所以现代计算机系统都不得不加入一层读写速度尽可能接近处理器运算速度的高速缓存(Cache)来作为内存与处理器之间的缓冲。
将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无须等待缓慢的内存读写了。
基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是也为计算机系统带来更高的复杂度,因为它引入了一个新的问题:缓存一致性(CacheCoherence)。
在多处理器系统中,每个处理器都有自己的高速缓存,而它们又共享同一主内存(MainMemory)。
然后我们可以聊一下JMM了。
JMM
Java内存模型(JavaMemoryModel)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量,存储到内存和从内存中读取变量这样的底层细节。
JMM有以下规定:
所有的共享变量都存储于主内存,这里所说的变量指的是实例变量和类变量,不包含局部变量,因为局部变量是线程私有的,因此不存在竞争问题。
每一个线程还存在自己的工作内存,线程的工作内存,保留了被线程使用的变量的工作副本。
线程对变量的所有的操作(读,取)都必须在工作内存中完成,而不能直接读写主内存中的变量。
不同线程之间也不能直接访问对方工作内存中的变量,线程间变量的值的传递需要通过主内存中转来完成。
本地内存和主内存的关系:
正是因为这样的机制,才导致了可见性问题的存在,那我们就讨论下可见性的解决方案。
可见性的解决方案
加锁
为啥加锁可以解决可见性问题呢?
因为某一个线程进入synchronized代码块前后,线程会获得锁,清空工作内存,从主内存拷贝共享变量最新的值到工作内存成为副本,执行代码,将修改后的副本的值刷新回主内存中,线程释放锁。
而获取不到锁的线程会阻塞等待,所以变量的值肯定一直都是最新的。
Volatile修饰共享变量
开头的代码优化完之后应该是这样的:
Volatile做了啥?
每个线程操作数据的时候会把数据从主内存读取到自己的工作内存,如果他操作了数据并且写会了,他其他已经读取的线程的变量副本就会失效了,需要都数据进行操作又要再次去主内存中读取了。
volatile保证不同线程对共享变量操作的可见性,也就是说一个线程修改了volatile修饰的变量,当修改写回主内存时,另外一个线程立即看到最新的值。
是不是看着加一个关键字很简单,但实际上他在背后含辛茹苦默默付出了不少,我从计算机层面的缓存一致性协议解释一下这些名词的意义。
之前我们说过当多个处理器的运算任务都涉及同一块主内存区域时,将可能导致各自的缓存数据不一致,举例说明变量在多个CPU之间的共享。
如果真的发生这种情况,那同步回到主内存时以谁的缓存数据为准呢?
为了解决一致性的问题,需要各个处理器访问缓存时都遵循一些协议,在读写时要根据协议来进行操作,这类协议有MSI、MESI(IllinoisProtocol)、MOSI、Synapse、Firefly及DragonProtocol等。
聊一下Intel的MESI吧
MESI(缓存一致性协议)
当CPU写数据时,如果发现操作的变量是共享变量,即在其他CPU中也存在该变量的副本,会发出信号通知其他CPU将该变量的缓存行置为无效状态,因此当其他CPU需要读取这个变量时,发现自己缓存中缓存该变量的缓存行是无效的,那么它就会从内存重新读取。
至于是怎么发现数据是否失效呢?
嗅探
每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期了,当处理器发现自己缓存行对应的内存地址被修改,就会将当前处理器的缓存行设置成无效状态,当处理器对这个数据进行修改操作的时候,会重新从系统内存中把数据读到处理器缓存里。
嗅探的缺点不知道大家发现了没有?
总线风暴
由于Volatile的MESI缓存一致性协议,需要不断的从主内存嗅探和cas不断循环,无效交互会导致总线带宽达到峰值。
所以不要大量使用Volatile,至于什么时候去使用Volatile什么时候使用锁,根据场景区分。
我们再来聊一下指令重排序的问题
禁止指令重排序
什么是重排序?
为了提高性能,编译器和处理器常常会对既定的代码执行顺序进行指令重排序。
重排序的类型有哪些呢?源码到最终执行会经过哪些重排序呢?
一个好的内存模型实际上会放松对处理器和编译器规则的束缚,也就是说软件技术和硬件技术都为同一个目标,而进行奋斗:在不改变程序执行结果的前提下,尽可能提高执行效率。
JMM对底层尽量减少约束,使其能够发挥自身优势。
因此,在执行程序时,为了提高性能,编译器和处理器常常会对指令进行重排序。
一般重排序可以分为如下三种:
编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序;
指令级并行的重排序。现代处理器采用了指令级并行技术来将多条指令重叠执行。如果不存在数据依赖性,处理器可以改变语句对应机器指令的执行顺序;
内存系统的重排序。由于处理器使用缓存和读/写缓冲区,这使得加载和存储操作看上去可能是在乱序执行的。
这里还得提一个概念,as-if-serial。
as-if-serial
不管怎么重排序,单线程下的执行结果不能被改变。
编译器、runtime和处理器都必须遵守as-if-serial语义。
那Volatile是怎么保证不会被执行重排序的呢?
内存屏障
java编译器会在生成指令系列时在适当的位置会插入内存屏障指令来禁止特定类型的处理器重排序。
为了实现volatile的内存语义,JMM会限制特定类型的编译器和处理器重排序,JMM会针对编译器制定volatile重排序规则表:
需要注意的是:volatile写是在前面和后面分别插入内存屏障,而volatile读操作是在后面插入两个内存屏障。
写
读
上面的我提过重排序原则,为了提高处理速度,JVM会对代码进行编译优化,也就是指令重排序优化,并发编程下指令重排序会带来一些安全隐患:如指令重排序导致的多个线程操作之间的不可见性。
如果让程序员再去了解这些底层的实现以及具体规则,那么程序员的负担就太重了,严重影响了并发编程的效率。
从JDK5开始,提出了happens-before的概念,通过这个概念来阐述操作之间的内存可见性。
happens-before
如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happens-before关系。
volatile域规则:对一个volatile域的写操作,happens-before于任意线程后续对这个volatile域的读。
如果现在我的变了flag变成了false,那么后面的那个操作,一定要知道我变了。
聊了这么多,我们要知道Volatile是没办法保证原子性的,一定要保证原子性,可以使用其他方法。
无法保证原子性
就是一次操作,要么完全成功,要么完全失败。
假设现在有N个线程对同一个变量进行累加也是没办法保证结果是对的,因为读写这个过程并不是原子性的。
要解决也简单,要么用原子类,比如AtomicInteger,要么加锁(记得关注Atomic的底层)。
应用
单例有8种写法,我说一下里面比较特殊的一种,涉及Volatile的。
大家可能好奇为啥要双重检查?如果不用Volatile会怎么样?
我先讲一下禁止指令重排序的好处。
对象实际上创建对象要进过如下几个步骤:
分配内存空间。调用构造器,初始化实例。返回地址给引用
上面我不是说了嘛,是可能发生指令重排序的,那有可能构造函数在对象初始化完成前就赋值完成了,在内存里面开辟了一片存储区域后直接返回内存的引用,这个时候还没真正的初始化完对象。
但是别的线程去判断instance!=null,直接拿去用了,其实这个对象是个半成品,那就有空指针异常了。
可见性怎么保证的?
因为可见性,线程A在自己的内存初始化了对象,还没来得及写回主内存,B线程也这么做了,那就创建了多个对象,不是真正意义上的单例了。
上面提到了volatile与synchronized,那我聊一下他们的区别。
volatile与synchronized的区别
volatile只能修饰实例变量和类变量,而synchronized可以修饰方法,以及代码块。
volatile保证数据的可见性,但是不保证原子性(多线程进行写操作,不保证线程安全);而synchronized是一种排他(互斥)的机制。
volatile用于禁止指令重排序:可以解决单例双重检查对象初始化代码执行乱序问题。
volatile可以看做是轻量版的synchronized,volatile不保证原子性,但是如果是对一个共享变量进行多个线程的赋值,而没有其他的操作,那么就可以用volatile来代替synchronized,因为赋值本身是有原子性的,而volatile又保证了可见性,所以就可以保证线程安全了。
总结
volatile修饰符适用于以下场景:某个属性被多个线程共享,其中有一个线程修改了此属性,其他线程可以立即得到修改后的值,比如booleanflag;或者作为触发器,实现轻量级同步。volatile属性的读写操作都是无锁的,它不能替代synchronized,因为它没有提供原子性和互斥性。因为无锁,不需要花费时间在获取锁和释放锁_上,所以说它是低成本的。volatile只能作用于属性,我们用volatile修饰属性,这样compilers就不会对这个属性做指令重排序。volatile提供了可见性,任何一个线程对其的修改将立马对其他线程可见,volatile属性不会被线程缓存,始终从主 存中读取。volatile提供了happens-before保证,对volatile变量v的写入happens-before所有其他线程后续对v的读操作。volatile可以使得long和double的赋值是原子的。volatile可以在单例双重检查中实现可见性和禁止指令重排序,从而保证安全性
原文链接:面试官想到,一个Volatile,敖丙都能吹半小时 三太子敖丙
标签:
相关推荐:
精彩放送:
- []动态:什么是域?AD域的详细介绍
- []水轰5失事 解答水轰5失事的问题
- []阜阳师范大学信息工程学院近三年录取分数线及位次
- []【全球聚看点】仙三外传结局官方解析 仙三外传结局怎么样?
- []当前热点-setTimeout是什么意思?彻底理解setTimeout
- []天天要闻:名侦探柯南主题曲简谱左右手 名侦探柯南主题曲简谱
- []环球观天下!手机闪存卡哪款好?经典手机闪存卡有哪些推荐?
- []节能灯具有哪些品牌?节能灯具品牌介绍
- []全球讯息:关于《哈皮父子与水金刚》主题曲 你知道多少?
- []激光焊接机价格怎么样?激光焊接机价格参考
- []世界球精选!小键盘指法怎么操作?小键盘指法练习技巧
- []世界即时看!王者荣耀绝悟最后一关隐藏咋打?王者荣耀觉悟挑战第六关通关打法
- []发电机设备有什么型号的?关于发电机设备的介绍
- []全球快看:金山wps2012抢先版和个人版有什么不同?不同之处详解
- []wifi摄像头怎么链接?wifi摄像头连接方法
- []Makefile宏控是什么?宏控与systemProperty取名对应
- []当前速读:商鞅变法是什么意思?出自哪里?
- []焦点资讯:秘鲁币兑换人民币怎么换?10000秘鲁币等于人民币16元
- []什么是封建社会?封建社会详情介绍
- []全球热点!QGIS|构建选址模型 模型需求分析
- []【全球新视野】fate第四次圣杯战争是哪一部番剧?fate系列有没有关于第六次圣杯战争出动漫的消息
- []当前观察:Volatile详解 现代计算机的内存模型的详情介绍
- []滚动:抖音可以查访客记录吗?抖音访客记录怎么看?
- []当前短讯!2021江西省高考的成绩怎么查询?江西省教育考试院高考成绩查询系统入口2021
- []全球头条:Ubuntu中snap是什么意思?介绍一些常用命令
- []分布式光纤测温系统 性能指标优势
- []世界速讯:视频在html不能播放器怎么办?网页播放器打不开的解决方法
- []焦点速讯:草莓的英文单词及发音 你知道多少?
- []看热讯:QT部署YOLOV5 pyqt5搭建YOLOV5的检测平台
- []天天快资讯:Oracle database 10g官方版性能拓展
- []热资讯!hr是什么意思?管理的五大原则
- []每日速看!2021年临颖一高高考成绩查询 河南漯河名列前茅的4所高中
- []全球新动态:笔记本电脑品牌有哪些推荐?五款热门品牌推荐
- []环球速递!Bo韩服跌至第三 外媒记者爆料:FPX想将Bo租借到其他LPL战队遭拒
- []焦点热议:爱宁牌电饼铛怎样?爱宁牌电饼铛的优势介绍
- []全球快消息!电烤箱烤羊肉串怎么做?电烤箱烤羊肉串做法步骤
- []Android应用Preference相关及源码浅析 Preference相关基础概念
- []ISO9000和ISO9001有什么特点?ISO9000和ISO9001作用详解
- []磊科升级版NW360怎么样?磊科升级版NW360详细介绍
- []朴敏英和李敏镐身高对比是多少?朴孝敏黄金比例身材
- []文件删除了怎么恢复?文件删除了三种恢复方法
- []读书郎学生电脑如何下载?读书郎电脑下载步骤
- []sd卡数据恢复软件有哪些?sd卡数据恢复的软件
- []天天视点!苹果手机助手哪个好?推荐几款好用的苹果手机助手
- []世界观速讯丨色度抽样怎么弄?抽樣作用的解釋
- []【天天报资讯】sin函数对照表怎么看?三角函数值对照表
- []如何打开关闭Excel2007/2010兼容性检查器?关闭技巧
- []如何在excel中画斜线?在excel中画斜线的方法
- []全球快资讯丨炉石传说美服天梯第一的冠军贼卡组分享 详细介绍
- []天天微资讯!为什么黑茶有茶梗?关于茶梗你知道多少?
- []天天快看:手机多媒体没声音是怎么回事?手机多媒体没声音怎么修?
- []世界速看:2021庆阳一中高考成绩查询 2020年庆阳市多所中学高考喜报
- []天天看热讯:华为云发布鲲鹏云服务 开启云上多元算力新赛道
- []一个没有四肢的人 却给了无数人的力量
- []新资讯:LOL各英雄的原型来源你了解几个? LOL背后的小故事
- []RCLAMP0524P超低电容TVS二极管阵列 DFN-10L封装教程
- []Module简介 module的编写方法
- []今日观点!Win7安装IE10或IE11怎么操作?离线安装注意问题
- []环球要闻:如何判断一个函数是奇函数还是偶函数?判断技巧
- []《阿凡达2》重磅回归,联手海信电视呈现光影之美
- [] 《阿凡达2》震撼首映,与海信电视携手上演“美学巅峰”
- []克罗地亚终获世界杯季军,海信电视为每个强者喝彩
- []棕榈股份景观设计展现现代与自然的和谐之美
- []世界杯消费趋势洞察:大屏电视翻倍增长,ULED电视夺冠
- []世界杯观赛调研公布: Z世代消费者首选海信电视
- []【东海期货12月20日产业链日报】能化篇:中国需求预期提振,油价小涨
- []环球即时看!三立期货12月20日早间内参——宏观
- []十八数藏创始人柏松受邀出席“西部国家版权链”发布会并作主题发言
- []广西文旅产业签约6个重大项目 计划总投资额达113.6亿元
- []今日看点:五矿地产获授7.8亿港元循环贷款额度
- []千红制药:公司临床阶段新药各项工作均在正常推进中,请关注公司定期报告与临时公告
- []世界信息:三湘印象拟非公开发行股票,募集资金总额不超16亿元
- []天天速递!12月LPR连续4个月维持不变:1年期3.65%、5年期4.30%
- []利民股份:公司子公司江苏卓邦新能源科技有限公司拟投资建设新能源电池用电解质盐、功能添加剂及电解液项目
- []每日视点!华夏幸福:相关债务置换议案获董事会通过
- []当前看点!三木集团:公司的经营一切正常
- []旅游年票发行大势所趋,专家:要体现出诚意
- []【新要闻】重庆九龙坡区落户13个重点项目 总投资139.23亿元
- []环球聚焦:住建部:1-10月老旧小区改造开工率已达101.7%
- []旭辉将配售8.4亿股现有股份 所得款净额约9.46亿港元
- []大消息!500强金融巨头罕见出手,50亿拿下上海外滩核心地块
- []全球热点评!广东肇庆1宗商住地将于2023年1月5日出让 起价1.2亿元
- []世界百事通!深圳机场启动物流设施建设项目 总投资超50亿元
- []天天讯息:新致软件:本次可转债的募投项目正在按既定计划推进,具体进度请关注公司相关公告
- []天天速读:首都机场:尤为艰难
- []公摊面积内卫生间“消失”,业主起诉房地产公司获赔偿
- []房产中介推销“添油加醋” 购房者需提高警惕
- []焦点短讯!塔里木油田向新疆南部累计供气500亿立方米
- []今日热闻!道通科技数字能源中国区产品发布会拟于12月22日举行
- []动态:新疆为何能成为中国电力新高地?
- []环球信息:上海实业控股46.08亿出售上海实森90%股权及相关债权予友邦人寿
- []全球快播:车损包括哪些险种
- []不买交强险上路会怎样 上路车辆不买交强险会怎样
- []赋能电力数字化多样场景 ——深信服云边安一体化建设方案助力发电行业数字化转型
- []要闻:网上交车保险怎么办理 如何在网上交车险
- []储能电池主要应用在哪些地方?
- []世界快消息!枣庄99元的惠民保险在哪里买 在哪里买枣庄99元的惠民保险
- []实时:怎么查询自己车辆保险是哪个公司 自己车辆保险是哪个公司怎么查询
- []滚动:因现行市况 达美乐中国特许经营商达势股份延迟全球发售
- []华发股份选举李伟杰为第十届监事会监事长?
- 今头条!美股盘前:特斯拉升逾3% 中概股轻微上升 阿里升逾3%
- 拓新药业:12月16日公司高管蔡玉瑛、渠桂荣、董春红减持公司股份合计11.14万股
- 今日聚焦!土地周报 | 重点城市土地供应“断档”,市场热度继续下行(12.12-12.18)
- 快报:远洋集团与邮储银行签署全面战略合作协议 获180亿元授信额度
- 全球观焦点:房地产逆周期之下,贝壳如何诠释“坚持难而正确的事”?
- 环球快报:道道全:12月16日公司高管张军减持公司股份合计6.5万股
- 九典制药:12月16日公司高管段立新减持公司股份合计15.51万股
- 中国建筑1-11月地产业务合约销售额3484亿元
- 全球今热点:三湘印象拟非公开发行股票 募集资金总额不超过16亿
- 全球最资讯丨璞泰来:12月16日至12月19日公司高管陈卫增持公司股份合计3.25万股
- 全球微动态丨广东东莞4宗地块56亿成交,华润联合体29亿斩获交椅湾地块
- 当前消息!万科董事会审议通过发行境外上市外资股(H股)方案
- 【全球报资讯】统联精密:12月16日公司高管杨虎增持公司股份合计5000股
- 龙软科技:12月15日公司高管任永智减持公司股份合计1.24万股
- 中交地产:3个交易日收盘价涨幅累计20%,无应披未披重大事项
- 焦点关注:天津第四批供地收官:24宗地收金99.8亿元,仅2宗溢价成交
- 直播预告|一起来看旅游业“神仙打架”名场面!
- 今日报丨南都电源:公司股东人数请参见公司定期报告
- 当前快讯:快讯丨华发股份:选举李伟杰任监事长
- 前11个月上海商品房销售面积约1526万平方米
- 世界今头条!家居丨奥普家居:回购注销限制性股票合计279.8万股
- 财面儿丨大悦城完成发行15亿元公司债券 票面利率为4.27%
- 【世界新要闻】昊华能源虚假陈述案开庭 投资者索赔金额已超亿元
- 名臣健康:12月16日公司高管彭小青减持公司股份合计27.9万股
- 简讯:招商局蛇口36.4亿元公司债将上市 利率分别为2.40%、2.80%
- 世界观点:首开股份:完成发行10亿元中期票据 票面利率5%
- 全球报道:金逸影视: 公司暂未涉及上述业务。 祝您生活愉快,投资顺利!
- 天天视讯!新希望地产累计获综合授信超480亿元
- 实时:北上广深等13市共同发布《城市治理现代化北京宣言》
- 当前简讯:洲明科技:公司具体产量、销量及投产情况详见公司于巨潮资讯网披露的定期报告及相关公告
- 当前视讯!金科股份:截至 2022年11月末,公司已到期未支付的债务本金合计金额90.91亿元
- 徽商期货荣获和讯第20届中国财经风云榜“2022年度品牌影响力期货公司”
- 2元20片退烧药冲上热搜第一 股价一字涨停!东北制药的背后是...?
- 岭南控股:截至目前,公司的控股子公司广州广之旅国际旅行社股份有限公司的出入境旅游组团业务尚未恢复
- 每日观点:金融街威斯汀酒店30.01亿元资产支持ABS已获受理
- 每日视讯:中铁建设创业大厦6.7亿元资产支持ABS(类REITs)已获受理
- 深圳南山将再发2亿元消费券,推出近百场线上线下促消费活动
- 通讯!中海企业发展30亿元公司债券票面利率为2.7%
- 全球热头条丨襄阳住房投资10亿元公司债券已获受理
- 【环球播资讯】【券商聚焦】中信证券指地产市场拐点有望显现 推荐万科企业(02202)等优秀开发企业
- ST三圣:百康药业暂无扩产计划,将全力保障生产经营,满足目前市场需求
- 至纯科技:公司8寸涂胶显影设备正在验证中
- 世界简讯:天津四批次集中供地收官,全年总成交额315亿元
- 迪马股份:陈涵辞任公司副总裁职务
- 环球观点:上周楼市整体环比略有上涨,同比持续下降,土地供求环比走高,宅地成交量增近三成
- 得利斯:今年以来,预制菜产品销量较去年同期有较大幅度增长
- 每日热文:梦洁股份:公司实施高端品牌战略,为顾客提供高品质的家居生活方式,传导充满爱的家居生活态度
- 全球热推荐:通行宝:公司近日暂无资产出售和收购重组等的计划,后续信息请以公司公告为准
- 达安基因:公司全资子公司中山生物工程有限公司已进入24小时持续生产状态中,已经面向国内市场销售
- 【天天快播报】市场看涨情绪高涨,2022年黄金有望强劲收官!
- 环球即时:美原油交易策略:下行趋势线压制明显,提防进一步下探风险
- 当前时讯:12月19日汇市观潮:欧元、英镑和日元技术分析
- 环球热点!蜂巢能源第三届电池日发布超300Ah大容量储能电池引领新风向
- 热点评!现货黄金交易策略:美联储进一步加息前景抵消美元走软影响,金价仍有见顶风险
- 【华安期货】贵金属12月18日周报:12月加息落地,金价延续偏强态势
- 每日播报!国产客机再入印尼,能否雪耻扑朔迷离
- 信息:北京大部分酒店已恢复承办婚宴、公司年会,接受年夜饭预订
- 当前通讯!长三角铁路多地客流增幅明显,加开多个方向旅客列车保障出行
- 天天速看:民航:明年1月初先恢复到疫情前七成航班量
- 当前热文:上千条鱼涌入柏林市中心,丽笙酒店内世界最大圆柱水族箱炸裂
- 全球头条:12月19日海源复材涨停分析:蔚来汽车概念股,宁德时代概念股,碳纤维概念热股
- 全球热点!12月19日全 聚 德涨停分析:餐饮,预制菜,休闲食品概念热股
- 天天速读:上海松江今年推出1701套公租房
- 博众精工:牵手蜂巢能源 叠片机设备领域将极具竞争优势
- 每日热门:中交地产:10亿元公司债券票面利率为5.9%
- 阿根廷斩获大力神杯 海信电视见证梅西圆梦卡塔尔
- 全球速看:浙江义乌3宗地块40.9亿元成交
- 天天快消息!合景泰富拟配售2.35亿股 筹资4.67亿港元
- 越秀地产上市30年,高质量发展再谋新篇
- 环球资讯:12月19日悦心健康涨停分析:养老产业,装修装饰,口腔概念热股
- 全球信息:12月19日黑芝麻涨停分析:锂电池,新能源汽车,休闲食品概念热股
- 利德治疗仪 多年良心价格回报客户
- 梅西加冕!海信电视为潘帕斯雄鹰喝彩
- 观速讯丨install安装命令的常见用法 install有哪些优点?
- 天天快看点丨vue怎么引入阿里巴巴图标?引入的方法教程
- 世界热头条丨英伟达开发板中的编译系统 能否在ZC706的板子上执行?
- 全球今亮点!sprintf函数是什么?sprintf函数用法的详解
- 全球快播:什么是黑苹果系统?黑苹果Mac系统安装教程
- 今日精选:Linux命令之restore命令 使用语法及参数说明
- 报道:ICMP是什么意思?ICMP的详解
- 世界消息!Steam账号怎么注册?Steam账号注册流程
- 【世界快播报】深入理解BootStrap--面板panel BootStrap的原理分析
- 【环球热闻】杳无音信拼音怎么读?杳无音信的含义
- 送婴儿选什么礼物好?送婴儿礼物排行榜
- 当前报道:什么是audit? audit可以用来干什么?
- 当前热议!什么是 “云”?云的最后形成
- group by是什么意思?关于group by的用法和原理
- 全球消息!好莱坞十大最可爱的女演员是谁?玛丽昂歌迪亚仅排末尾
- 天天热议:【音频】syntax How to Write Custom Syntax
- JAVA的forEach用法是什么?JAVA的forEach的格式
- 【环球播资讯】大蛇丸的儿子的母亲 大蛇丸的老婆是谁?
- 环球滚动:战地4配置要求有哪些?推荐几个战地4配置
- 世界球精选!石家庄核酸检测20-22号完成 24号低风险区域会让出门吗?
- 天天即时看!QPS是什么?QPS的计算方法
- 全球今亮点!box-shadow属性语法 box-shadow属性详解
- 微头条丨咐组词和拼音是什么?咐怎么读?
- linux中常用的sftp命令有哪些?sftp介绍
- 即时焦点:youbastard怎么发音?youbastard的含义
- 世界速递!sql中的left join 查询 left join之后的记录有几条?
- 全球观点:瘦金体由谁所创?关于瘦金体由谁所创的介绍