![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程/并发编程
Chgl16
这个作者很懒,什么都没留下…
展开
-
线程任务之线程中断、线程等待、线程睡眠
1. 线程中断 Thread类提供了一种线程可以中断其他线程的机制。当一个线程被中断时,它会抛出java.lang.InterruptedException异常。这一机制由下面三种方法构成。一个线程在未正常结束之前, 被强制终止是很危险的. 因为它可能带来完全预料不到的严重后果. 也因此Thread.suspend, Thread.stop等方法都弃用了。那么不能直接把一个线程搞挂掉, 但...原创 2019-02-14 23:40:23 · 751 阅读 · 0 评论 -
Java线程Thread和Runable
线程图片来自网络线程状态可以通过 线程对象.getState()方法获取,是枚举类型。以下是JDK1.8的线程状态源码 public enum State { /** * Thread state for a thread which has not yet started. */ NEW, ...原创 2019-02-05 21:46:39 · 467 阅读 · 0 评论 -
线程交互问题
线程中的问题 线程交互是通过共享变量完成的,当线程之间没有交互时,开发多线程的应用程序就会变得简单很多。一旦发生了交互,很多诱发线程不安全(在多线程环境下不正确)的因素就会暴露出来。这些bug多和竞态条件、数据竞争、缓存变量有关。1. 竞态条件当计算的正确性取决于相对时间或者调度器所控制的多线程交叉时。就会发生竞态条件。有以下两种类型的竞态条件。check-then-act以下例...原创 2019-02-15 19:35:34 · 355 阅读 · 0 评论 -
同步临界区的访问
概念要点 同步可以解决诸如竞态条件、数据竞争、缓存变量的线程问题。同步是JVM的一个特性,在保证两个或者多个并发线程不会同时执行同一块临界区,临界区就必须以串行方式访问的一段代码块。 因为其他线程在临界区中的时候每条线程对该临界区的访问都会互斥地执行,这种同步属性就称为互斥。也因此线程获取到的锁经常称为互斥锁。 同步保证每一条线程在临界区执行的时候总是看到共享变量最近的修改。当进入临界...原创 2019-02-17 18:19:30 · 647 阅读 · 0 评论 -
高并发synchronized深入详解
1. synchronized概述 synchronized是Java的一个关键字,修饰符。是Java多线程加锁机制的一种,一种隐式内置锁/监听器锁(对比显式Lock锁)。它也是一种互斥锁,保证了被修饰的块每次只能有一条线程访问。1.1 细分对象锁:synchronize修饰的是实例方法、synchronized语句块参数使用的是实例对象类锁: synchronized修饰的是类方法、...原创 2019-04-05 23:29:41 · 1012 阅读 · 0 评论