![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
班级作业
scau-codeman
a coder
展开
-
[Java多线程编程之四] CPU缓存和内存屏障
一、CPU三级缓存1、缓存的作用 CPU的结构很复杂,简单地说由运算器和寄存器组成。程序运行时,需要CPU去执行运算,运算是由运算器来执行,运算器可以做加减乘除运算以及与或非逻辑运算,运算过程中可能需要临时存放数据到某个地方,寄存器就起到这个作用。 虽然寄存器可以存储一些运行时数据,但是容量是很小的,程序运行时产生的大部分数据(比如Java对象)是存储在内存中的,并且程序指令也是存...原创 2019-10-14 00:02:13 · 420 阅读 · 0 评论 -
[Java多线程编程之三] 线程中止的多种姿势
一、错误的姿势- StopThread.stop()1、存在问题 不管程序的运行逻辑如何,stop会直接中止线程,并清除监控器锁的信息,如果有些代码块的运行具有原子性,则stop可能会破坏这种原子性导致线程安全问题,所以JDK已不建议使用。2、代码示例 定义一个Thread的子类StopThread,在重写的run()中,++i和++j被包裹在同一同步代码块中,目的是...原创 2019-10-13 23:58:25 · 165 阅读 · 0 评论 -
[Java多线程编程之二] 当初叫人家小甜甜,现在叫我牛夫人 —— 多变的线程状态
一、线程生命周期与状态 一个线程从创建、运行到终止称为一个生命周期,线程在其生命周期中要经历创建、就绪、运行、阻塞、等待、终止多种状态,这多种状态的转换图如图所示: 当一个线程对象被创建时,状态为New;当线程启动时,进入Runnable状态;当线程运行由于资源或锁被占用时,进入Blocked状态;当线程休眠时,进入等待状态;当线程执行完毕或发生中断异常是时,线程运行结束,进入Termi...原创 2019-10-13 23:53:54 · 155 阅读 · 0 评论 -
[Java多线程编程之一] Java代码是怎么运行起来的?看完这篇你就懂了!
一、关于解释型和编译型语言 解释型语言就是源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释执行,如Python/JavaScript/Perl/Shell/PHP等都是解释型语言,因为代码是在运行时才被翻译成机器码,所以运行效率相对编译型语言比较低。 编译型语言是相对于解释型语言存在的,编译型语言首先由编译器将源代码编译生成机器语言,再由机器运行机器码(二进...原创 2019-10-13 17:35:11 · 353 阅读 · 0 评论