![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 62
嘤嘤怪QQQ
这个作者很懒,什么都没留下…
展开
-
上下文
上下文 每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行,这就涉及到 CPU 寄存器 和 程序计数器(PC): CPU 寄存器是 CPU 内置的容量小、但速度极快的内存; 程序计数器会存储 CPU 正在执行的指令位置,或者即将执行的指令位置。 CPU寄存器和程序计数器是 CPU 运行任何任务前都必须依赖的环境,因此叫做 CPU 上下文。 上下文切换 将前一个 CPU 的上下文(也就是 CPU 寄存器和程序计数器里边的内容)保存起来; 然后加载新任务的上下文到寄存器和程序计数器; 最后跳转到原创 2021-03-09 20:51:20 · 147 阅读 · 0 评论 -
join()
t.join()方法只会使主线程(或者说调用t.join()的线程)进入等待池并等待t线程执行完毕后才会被唤醒。并不影响同一时刻处在运行状态的其他线程。 可以看出,join()方法的底层是利用wait()方法实现的。可以看出,join方法是一个同步方法,当主线程调用t1.join()方法时,主线程先获得了t1对象的锁,随后进入方法,调用了t1对象的wait()方法,使主线程进入了t1对象的等待池,此时,A线程则还在执行,并且随后的t2.start()还没被执行,因此,B线程也还没开始。等到A线程执行完毕之后原创 2021-03-09 20:31:41 · 268 阅读 · 0 评论 -
偏向锁、轻量级锁、重量级锁
一直被这三个锁的膨胀问题所困扰,不知道到底实在什么时候会有偏向锁升级到轻量级锁,什么时候由轻量级锁升级到重量级锁。找到好久,也没有找到简洁明了的答案。 综合多个方面的描述综合自己的理解,特地记录下来。但是也有可能理解有误。 先依然描述这三个锁是什么: 这里直接从《深入理解Java虚拟机》粘贴过来。 偏向锁 Hotspot 的作者经过以往的研究发现大多数情况下锁不仅不存在多线程竞争,而且总是由同一线程多次获得,为了让线程获得锁的代价更低而引入 了偏向锁。当一个线程访问同步块并获取锁时,会在对象头和栈帧原创 2021-03-09 20:02:45 · 111 阅读 · 0 评论 -
java 多线程编程核心技术
java 多线程编程核心技术第一章 java多线程技巧实现多线程编程的方式有两种 第一章 java多线程技巧 实现多线程编程的方式有两种 继承Thread类 创建一个自定义的线程类 ,此类继承Thread,并且重写run()方法。在run()方法中,写线程要执行的任务的代码。调用时使用start()进行异步执行。 在使用多线程技术时,代码的运行结果与代码顺序或调用顺序是无关的。 实现...原创 2020-03-18 00:09:56 · 250 阅读 · 0 评论