随笔分类 -  线程并发

摘要:深入解析synchronized 1 常见的几个并发问题 1.可见性问题 案例演示:一个线程根据boolean类型的标记flag, while循环,另一个线程改变这个flag变量的值,另一个线程并不会停止循环。 /** * @author WGR * @create 2020/12/22 -- 20 阅读全文
posted @ 2020-12-23 13:43 天宇轩-王 阅读(608) 评论(1) 推荐(0)
摘要:线程池中的execute方法大家都不陌生,即开启线程执行池中的任务。还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果。下面简要介绍一下两者的三个区别: 1、接收的参数不一样 public class MainTest { public stat 阅读全文
posted @ 2020-05-07 00:19 天宇轩-王 阅读(4952) 评论(0) 推荐(0)
摘要:什么是线程池 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙 阅读全文
posted @ 2020-04-08 22:39 天宇轩-王 阅读(189) 评论(0) 推荐(2)
摘要:1. ThreadLocal的内部结构 1.1 常见的误解 通常,如果我们不去看源代码的话,我猜ThreadLocal是这样子设计的:每个ThreadLocal类都创建一个Map,然后用线程的ID threadID作为Map的key,要存储的局部变量作为Map的value,这样就能达到各个线程的局部 阅读全文
posted @ 2020-04-02 23:24 天宇轩-王 阅读(260) 评论(0) 推荐(3)
摘要:1. ThreadLocal介绍 1.1 官方介绍 /** * This class provides thread-local variables. These variables differ from * their normal counterparts in that each threa 阅读全文
posted @ 2020-04-02 21:24 天宇轩-王 阅读(521) 评论(0) 推荐(3)