每次说Windows,说macOS,就有一堆软粉,X86粉[狗头]
其实,有几个软粉见过这东西[笑哭]有几个知道盒装Windows里面都有什么的,还有几个知道这是一套2张光盘,32位,64位分别一张的[狗头]
其实正版Windows并不只有这一套,但还保留着的也确实就这一个盒装win7了。。是和图三这套电脑一起买的,然后也就变成软黑了,这也是必然,有几个软粉能粉10年以上,买一大堆软硬件之后还能继续坚持粉下去的[捂脸]
#Windows# #macOS#
我们的半导体水平到底如何?尤其是CPU/MCU芯片。
1,8位RISC单片机,技术最强者依然是:Microchip
2,8位CISC单片机,技术最强的标杆:SILICON的100MIPS的C8051F120。
3,16位RISC单片机,技术霸主依然是:TI的MSP430和瑞萨/英飞凌的汽车级MCU。
4,16位/32位CISC处理器,没有什么疑问,是INTEL的251系列和X86系列。
5,32位RISC单片机,技术最强者是:基于ARM的M7/A7系列,比如ST的H745。
6,64位RISC处理器,最强者自然是:苹果/高通/华为等等给予ARM的A72系列处理器
7,64位CSIC处理器,不用问了,还是INTEL和AMD。
8,毫不客气的说:国内真正自主的CPU/MCU,而且销量能大批量铺开的只有:宏晶STC的51单片机,其他的都是ARM核的伪国产,或者使用来自美国开源的RISC-V的内核(不要天天说开源就可靠),而MIPS等国产CPU蒙圈压根跑不出批量。
【java经典面试场景之多线程】请介绍一下synchronized锁升级
要搞明白什么是 synchronized 锁升级,就得先搞清楚什么是 synchronized?前面有介绍,可以往前面翻。
当我们聊到 synchronized 的时候,很多人第一反应就是他是一个重量级锁,没错,这也是为什么 JDK 团队在 1.6 对 synchronized 做了大量的优化,其中就包括 synchronized 的锁升级。
对象头,也就是我们经常说到的 mark Word,而我们的 synchronized 使用的锁就是存放 java 对象头中。如果对象是数组类型,则虚拟机用3个字宽存储对象头,如果是非数组类型,则用 2 字宽存储对象头。在 32 位虚拟机中, 1 字宽等于 4 字节(32 bit)。
java对象头的长度请看图一。
java 对象头里的 Mark Word 默认存储对象的HashCode、分代年龄和锁标记位。32位 JVM 的Mark Word 的默认存储结构图二所示
在运行中, Mark Word 存储的数据会随着锁标志位的变化而发生变化,具体如图三所示。
而 64 位虚拟机则于 32 位 的Mark Word 是有着一些差别的,Mark Word在 64位下所占空间为 64 bit,图四所示。
Mark Word 搞明白之后我们需要弄明白锁升级中的几个锁状态:无锁状态、偏向锁、轻量级锁、重量级锁。
无锁状态:顾名思义,没有加锁,这个没啥需要解释的。
偏向锁:当一个线程访问同步代码块并获取到锁时,会在对象头(Mark Word)和栈帧中的锁记录里存储锁偏向的线程 ID,该线程再次进入和退出同步代码块时不需要进行 CAS 操作来加锁和解锁,只需要简单的判断一下对象头(Mark Word)里是否存储者指向当前线程的偏向锁。如果是,表示该线程已经获取到了锁。如果不是,则需要再测试一下 Mark Word 中偏向锁的标志(偏向模式)是否设置为 1(表示当前是偏向锁),如果没有,则利用 CAS 竞争锁;如果是,则尝试使用 CAS 将对象头的偏向锁指向当前线程。
偏向锁的撤销:偏向锁使用了一种等待竞争才会释放锁的机制,所以偏向锁的撤销只有其他线程尝试竞争偏向锁的时候,只有偏向锁的线程才会释放锁。但需要注意的是:偏向锁的撤销需要一个全局安全点(所有线程都停止执行),它会先暂停持有偏向锁的线程,然后检查持有偏向锁的线程是否处于存活状态,如果该线程处于非活动状态,则立即结束偏向锁,根据锁对象目前是否处于被被锁的状态是否撤销偏向锁,撤销后标志位恢复到无锁状态或者轻量级锁状态。
偏向锁可以提高带用同步但无竞争的程序性能,但他同样是一把双刃剑,如果程序中大部分的锁都会被多个线程访问,那偏向锁可能会适得其反,所以需要根据程序的自身条件判断是否需要开启偏向锁。
偏向锁在 JDK 6、7 是自动开启的,如果你想关闭偏向锁,只需要将 JVM 的参数:-XX:-UseBiasedLocking=false,这样程序默认会进入轻量级锁状态。
轻量级锁:在线程即将进入同步代码块时,如果此同步对象没有被锁定(锁标志位为 ‘’01‘’),虚拟机首先会在当前线程的栈帧中建立一个名为锁记录(Lock Record)的空间,利用存储锁对象目前 Mark Word 的拷贝(官方称之为:Displaced Mark Word)。随后虚拟机将会使用 CAS 操作尝试将对象的 Mark Word 更新为指向 Lock Record 的指针。如果操作成功,说明当前线程已经拥有了这个对象的锁,并且对象的 Mark Word 锁标志将会修改为 “00”,表示此对象处于轻量级锁定状态,如果失败,那说明至少存在一个线程与当前线程竞争获取该对象的锁。虚拟机会优先检查对象的 Mark Word 是否指向当前线程的栈帧,如果是:说明线程已经拥有了这个对象的锁,直接执行代码块即可,否则说明对象已经被其他线程占用了,此时轻量级锁会膨胀成为重量级锁(轻量级的加锁)。
轻量级的解锁:如果对象的 Mark Word 还是指向线程的锁记录,则会使用 CAS 操作将当前对象的 Mark Word 和线程中复制的 Displaced Mark Word 进行替换,替换成功,说明同步过程顺利完成;替换失败,说明其他线程尝试获取过该锁,就需要释放锁的同时,唤醒被挂起的其他线程。
轻量级锁的不足:如果长时间得不到锁,CAS 操作会频繁的消耗 CPU。
重量级锁:这个大家也是非常熟悉,所有线程互斥,获取到锁的线程执行,其他线程阻塞被挂起,效率较差。
锁升级的流程请看图五。
所以撤销偏向锁的时候标志位不一定会变成无锁,也有可能会升级为轻量级锁(存在锁竞争)。
偏向锁、轻量级锁、重量级锁的优缺点对比请看图六。
勘误:Any与Byval在Declare里,并非水火不容,不知是否为Bug?
1、笔者在《VB/VBA中Variant不仅是容器,充当传参的Any,更可以当函数用哦》一文中提到『再有,被Any修饰的参数,不能与ByVal关键字合作,不能传值,而只能传址,所以有人觉得它高效。』,其实这句是有问题的,ByVal可以修饰Any。该文其他结论不受影响。
2、在写该文时,笔者的结论是依赖64位Win7上安装的VB6SP6,恍惚记得当年安装时,有错误提示,但是忽略后可以正常使用。笔者很清楚地记得,在Declare中ByVal与Any是不相容的,编译时会有错误提示,故有此结论。
3、但是,后面为了测试VB对64位Office的兼容性,将32位Office换成了64位,这下发现原本规矩的VB开始各种不正常了,尤其是很多控件无法正常使用。于是就重装了VB,但打死都装不上。因为用的D版,怀疑没D好,于是又下载了另一个D版的VB,完美安装,无任何错误提示。今天写Declare时,又遇到了Any,测试了下居然可以用ByVal修饰Any。
不知,这算不算1个Bug?大家伙有没有遇到过呢?
迎关注BtOfficer(收藏、点赞、关注+转发) ,更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,期待你的加入!
最新一期的国际足联国家队排出炉,世界杯预选赛非洲区预选赛第三阶段十强赛分档揭晓,国际足联国家队非洲国家排名五位的球队为种子队。具体分档如下:(括号内为在国际足联国家队排名)。
种子档:塞内加尔(第20位)、摩洛哥(第28位)、突尼斯(第29位)、阿尔及利亚(第32位)、尼日利亚(第36位)。
非种子档:埃及 (第45 位 )、喀麦隆 (第50位 )、加纳 (第52位 )、马里 (第53 位)、民主刚果 (第64位)。
非洲前 20 名
1. 塞内加尔(第 20 位)
2. 摩洛哥(第 28 位)
3. 突尼斯(第 29 位)
4. 阿尔及利亚(第 32 位)
5. 尼日利亚(第 36 位)
6. 埃及(第 45 位)
7. 喀麦隆(第 50 位)
8. 加纳(第 52 位)
9. 马里(第 53 位)
10. 科特迪瓦(第 56 位)
11. 布基纳法索(第 60 位)
12. 刚果民主共和国(第 64 位)
13. 南非(第 68 位)
14. 佛得角(第 73 位)
15. 几内亚(第 81 位)
16 . 乌干达(第 82 位)
17. 贝宁(第 83 位)
18. 赞比亚(第 88 位)
19. 加蓬(第 89 位)
20. 刚果(第 97 位)
《影响世界的100帝王排行榜》是2007年5月1日新世界出版社出版的图书,作者是钟澈
内容简介
从世界各国历史的数千帝王中,挑选出100个,并按其对历史影响的大小排出座次,每人一篇传记,内容包括该帝王的生平、经历、功过是非等.并论述他们所居位次的理由。
第1位君士坦丁大帝(罗马皇帝)
第2位秦始皇嬴政(中国秦朝皇帝)
第3位亚历山大大帝(马其顿国王、亚历山大帝国皇帝)
第4位成吉思汗(蒙古大汗)
第5位欧麦尔一世(阿拉伯哈里发)
第6位阿育王(印度孔雀王朝君主)
第7位拿破仑·波拿巴(法兰西第一帝国皇帝)
第8位大流士一世(波斯皇帝)
第9位彼得一世(俄国沙皇)
第10位查士丁尼一世(拜占庭皇帝)
第11位屋大维(罗马元首)
第12位查理曼(法兰克国王)
第13位汉武帝刘彻(中国西汉皇帝)
第14位汉谟拉比(古巴比伦国王)
第15位恺撒大帝(罗马终身独裁官)
第16位美尼斯(古埃及法老)
第17位明治天皇(日本天皇)
第18位居鲁士大帝(波斯皇帝)
第19位萨尔贡(阿卡德国王)
第20位伊莎贝尔一世(西班牙女王)
第21位奥托一世(德意志国王)
第22位伊丽莎白一世(英格兰都铎王朝女王)
第23位阿克巴大帝(印度莫卧儿王朝皇帝)
第24位路易十四(法国波旁王朝国王)
第25位威廉一世(英格兰诺曼王朝国王)
第26位图特摩斯三世(古埃及法老)
第27位乌尔班二世(罗马教皇)
第28位威廉一世(普鲁士国王、德国皇帝)
第29位唐太宗李世民(中国唐朝皇帝)
第30位奥斯曼一世(奥斯曼土耳其帝国苏丹)
第31位萨拉丁(埃及阿尤布王朝苏丹)
第32位帖木儿(帖木儿帝国君主)
第33位穆阿维叶(阿拉伯帝国倭马亚王朝哈里发)
第34拉拉美西斯二世(古埃及法老)
第35位明太祖朱元璋(中国明朝皇帝)
第36位康熙(中国清朝皇帝)
第37位威廉一世(荷兰执政)
第38位尼布甲尼撒二世(新巴比伦国王)
第39位叶卡捷琳娜二世(俄国女沙皇)
第40位苏莱曼一世(奥斯曼土耳其帝国苏丹)
第41位腓特烈二世(普鲁士国王)
第42位古斯塔夫二世·阿道夫(瑞典国王)
第43位迦腻色迦(贵霜帝国君主)
第44位维克托·艾曼努尔二世(撒丁国王、意大利国王)
第45位伊凡三世(莫斯科大公、全罗斯君主)
第46位曼苏尔(阿拉伯帝国阿拔斯王朝哈里发)
第47位威廉三世(荷兰执政、英国国王)
第48位爱德华一世(英国金雀花王朝国王)
第49位若昂一世(葡萄牙国王)
第50位隋文帝杨坚(中国隋朝皇帝)
第51位沙普尔二世(波斯萨珊王朝国王)
第52位卡洛斯一世(西班牙、德意志国王)
第53位英诺森三世(罗马教皇)
第54位魏孝文帝拓跋宏(中国北魏皇帝)
第55位海护王(印度笈多王朝君主)
第56位图拉真(罗马帝国元首)
第57位巴西尔二世(拜占庭皇帝)
第58位宋太祖赵匡胤(中国北宋皇帝)
第59位汉高祖刘邦(中国西汉皇帝)
第60位亨利八世(英格兰都铎王朝国王)
第61位亚历山大二世(俄国沙皇)
第62位戴克里先(罗马皇帝)
第63位哈拉尔蓝牙王(丹麦国王)
第64位提格拉·帕拉萨三世(亚述国王)
第65位穆罕默德·阿里(埃及帕夏)
第66位腓特烈二世(普鲁士国王)
第67位路易九世(法国卡佩王朝第九任国王)
第68位丕平三世(法国加洛林王朝国王)
第69位武丁(中国商朝国王)
第70位伊本·沙特(沙特阿拉伯国王)
第71位阿尔弗烈德(英格兰威塞克斯国王)
第72位维多利亚(英国女王、印度女皇)
第73位利奥波德二世(比利时国王、刚果国王)
第74位查理四世(德意志国王、神圣罗马帝国皇帝)
第75位穆罕默德·杜尔(桑海帝国皇帝)
第76位希拉克略(拜占庭帝国皇帝)
第77位利奥三世(拜占庭帝国皇帝)
第78位忽必烈(蒙古皇帝)
第79位旃陀罗笈多(月护王、印度孔雀王朝开国君主)
第80位旭烈兀(蒙古帝国伊儿汗)
第81位李成桂(朝鲜王朝国王)
第82位朱拉隆功(泰国曼谷王朝国王)
第83位西蒙一世(保加利亚皇帝)
第84位梅什科一世(波兰国王)
第85位克洛维一世(法兰克国王)
第86位推古天皇(日本女天皇)
第87位亚历山大一世(俄国沙皇)
第88位查理七世(法国瓦卢瓦王朝国王)
第89位伊凡四世(俄国沙皇)
第90位腓特烈一世(德意志国王)
第91位腓力二世(法国卡佩王朝国王)
第92位阿拔斯一世(波斯萨非王朝皇帝)
第93位武则天(中国女皇)
第94位戒日王(印度戒日朝国王)
第95位玛丽娅·特蕾莎(奥地利女大公、匈牙利女王、波希米亚女王)
第96位厄查纳(阿克苏姆国王)
第97位大卫王(以色列国王)
第98位克努特(英格兰国王、丹麦国王、挪威国王)
第99位亚盖洛(立陶宛国王、波兰国王)
第100位乾隆(中国清朝
就在上午,被一位20岁的小姑娘给教育了!她抱着一个联想主机来升级,我检查后好心提醒她,需要更换系统。检查了半天她又说不升级了,我收检测费,她一席话把我说得哑口无言,我真错了吗?
没收到钱不说,我的好心还被误会,这次之后我得出教训,以后客户说啥就做啥,再也不多说话了。
上午10点多,一位学生模样的小姑娘,骑着电动车带来一台联想老主机。进门就说,老板,你这能升级吗?给我升级一下电脑,把内存给换成8G的。
我检查机器以后发现,这机子真够老的,至少也有十年了。只是一个普通双核的机子,主板只是现在几十块的G41,插槽上有两条内存,都是2G的。
我拿过内存,正想给她换上呢,忽然意识到,这老机子,32位的系统,恐怕加上8G内存,也起不到作用,也只能显示3G,客户花了上百元,起不到作用,太遗憾了。
我提醒她说,你这机子是32位的系统,装3G以上的内存,作用不大,要想让8G发挥作用,需要装64位的系统才好。
她说,我这电脑是几年前哥哥刚上大学时买的,毕业后弄到家里的,我也用了几年了,哥哥说,他曾经试过,这机子不能装64位的系统。
我想,若不能装64位的,加上内存也没用啊,就好心提醒她说,最好试试64的系统,说不定,换了内存,现在我的新64位系统能装了呢。
她听了挺高兴,说,好那就试试吧。
于是,我就忙活起来,先是装了64位win7不行,又换win10还不行,考虑别是显卡问题,替换了一下故障依旧,最后甚至换电源也试了,还不行。最终确定,是主板原因,64位的系统确实不行。
看见测完了,她似乎有些等不及了,说算了别试了,还是再用原先的32位系统吧。内存既然不起作用,那就不用加了。
然后她抱起电脑就要走,我赶紧说,你看我忙活了够两个小时,也给你检测出问题了,要收检测费的,你给30元吧。
她一听不高兴了,说,我啥都没弄,还收费?我说,不是给你检测出是主板问题了吗?
她说,我进店是来加内存的,现在不能加,你也没加,还收什么费?
我说,我给你检测了啊,是你机子不能能加,我如果直接给你加上,你会花一百多,这样我给你检测出不行,你还少花钱了呢。
她忽然想起来说,我进门就告诉你了,不能换64位,你偏偏检测的,不是我要你检测的吧。
一句话,还真把我问住了,她进门是说不能装了,是我想给他试试,万一他之前判断错了。
我说,我也是为了你好,你不是想升级吗,你想,我如果只听你的,立即给你加上,不好心给你检测,你会花8G的钱,而实际是使用的3G的内存,你不更亏吗。
但是,无论怎么说,她就是不同意给30检测费,末了,说给你10元吧,你啥也没做,10元我也亏了。
我只能呵呵了,好吧。这生意真难做了,好心给人家提醒,检测2小时,到头来既没挣到钱,还生了一肚子气,早知这样,不如直接给她加上算了。
大家说说,我这检测费该不该收,不提醒她,直接加上好不好呢?