计算机组成原理
文章平均质量分 84
A 北枝
双非二本25届,认真学习java中
展开
-
【计算机组成原理】7.线程之大厂难题
通过源码我们看到,为何总是唤醒线程A,这是用于当线程C竞争不到锁时,被放入了cxq队列,而此时entrylist为null,线程A在等待集waitset中,当我们调用notify方法时,由于移动策略默认是2,这时会从等待集的头部将线程A取下,放入到entrylist中,当notify执行完毕后,在执行后面的monitor_exit字节码时将会优先从entrylist中唤醒线程,这就导致了A线程总是被优先执行。原创 2024-08-11 20:01:36 · 1073 阅读 · 0 评论 -
【计算机组成原理】6.并发编程的特性
注意序列化并非其他程序一直没机会执行,而是有可能会被调度,但是抢不到锁,又回到Blocked或者Waiting状态(sync锁升级)重量级锁(经过操作系统的调度)synchronized早期都是这种锁(目前的实现中升级到最后也是这种锁)悲观锁:悲观的认为这个操作会被别的线程打断(悲观锁)synchronized(上一个小程序)如果临界区执行时间长,语句多,叫做 锁的粒度比较粗,反之,就是锁的粒度比较细。轻量级锁(CAS的实现,不经过OS调度)(无锁 - 自旋锁 - 乐观锁)一定是锁定同一把锁(抢一个坑位)原创 2024-08-10 16:31:52 · 1203 阅读 · 0 评论 -
【计算机组成原理】5.线程
sleep()方法在睡眠的时候,不到时间是没有办法叫醒的,这个时候可以用interrupt设置标志位,然后呢必须得catch InterruptedException来进行处理,决定继续睡或者是别的逻辑,(自动进行中断标志复位)interrupt()不能打断正在竞争锁的线程synchronized()本节内容的重要程度:中(面试有可能被问)重要程度:中(面试不多)原创 2024-08-10 13:53:34 · 1026 阅读 · 0 评论 -
【计算机组成原理】4.CPU的并发控制
•线程中断规则:对线程interrupt( )方法的调用先行发生于被中断线程的代码检测到中断事件的发生,可以通过Thread.interrupt( )方法检测线程是否中断。•程序次序规则:同一个线程内,按照代码出现的顺序,前面的代码先行于后面的代码,准确的说是控制流顺序,因为要考虑到分支和循环结构。为了充分利用CPU的计算能力,在CPU和内存中间引入缓存的概念(工业上的妥协,考虑性价比)•对象终结规则:一个对象的初始化完成先行于发生它的finalize()方法的开始。如果缓存行大:命中率高,但读取效率低。原创 2024-08-09 11:45:23 · 1144 阅读 · 0 评论 -
【计算机组成原理】3.程序的执行
一个程序的执行,首先把可执行文件放到内存,找到起始(main)的地址,逐步读出指令和数据,进行计算并写回到内存。同一个进程内部:有多个任务并发执行的需求(比如,一边计算,一边接收网络数据,一边刷新界面)进程是静态的概念:程序进入内存,分配对应资源:内存空间,进程进入内存,同时产生一个主线程。问题:对于一个程序,设置多少个线程合适?可以,但是毛病多,最严重的毛病是,我可以很轻易的搞死别的进程。一个程序进入内存,被称之为进程?问题:是不是线程数量越多,执行效率越高?线程是动态的概念:是可执行的计算单元(任务)原创 2024-08-09 08:53:07 · 642 阅读 · 0 评论 -
【计算机组成原理】2.CPU的原理
这一点很重要,因为这会给你带来“通透感”(原谅我找不到更好的形容词,现在很多程序员是没有经过科班训练的,是根据业务进行速成的,对这样的小伙伴儿来说,你写的代码虽然可以工作,但是它对你是一个黑盒子,你看不到代码背后的一切,从而也就无法进行更深入的理解和更准确的调优,总之,我个人非常喜欢这种通透感,我不喜欢一个技术对我来说是黑盒,是秘密,希望你也能理解和享受这种通透感)当然你会发现如果只有两个信号的组合,就最多表示四个字,如果想沟通更顺畅,我只要增加信号的组合长度就可以了,比如三个信号,我就可以表示八个字。原创 2024-08-08 08:51:55 · 1002 阅读 · 0 评论 -
【计算机组成原理】1.计算机的历史
对我有没有什么企图?如果非要追究计算机的鼻祖,那就得讲讲17世纪前欧洲的故事,最早的计算机其实是计算器,就是算数用的,在欧洲工业工业革命的时候,大量的工业模具需要计算,欧洲又没有中国传统的计算器 - 算盘,就催生了很多科学家发明自己的计算器(对,就是计算器,就是以前菜市场还在使用的那种,还不能称之为现在的计算机),这其中有个NB的人物,这个人叫布莱士帕斯卡,我们的压强单位(帕,千帕,百帕,兆帕)等等,就是以这哥们儿的名字命名,还有,计算机语言里面有一种叫做Pascal,就是为了纪念他。原创 2024-08-07 20:16:46 · 1058 阅读 · 0 评论