多线程
文章平均质量分 58
风轻扬777
继续不为什么的坚持,终得自由选择的时空
展开
-
JDK的并发容器及使用场景
最近在研究JUC,看到了很多的并发容器。它们的特性和使用场景是不一样的。在这里,总结一下1 .HashTable2 .ConcurrentHashMap3 .ConcurrentSkipListMap4 .CopyOnWriteArrayList5 .Vector6 .ConcurrentLinkedQueue7 .ConcurrectSkipListSet下面我们挨个介绍Has...原创 2020-03-04 23:09:39 · 229 阅读 · 0 评论 -
interrupt能关闭一个线程吗?
线程的生命周期管理API中,没有抢占式的关闭方式。早期,jdk有stop方法可以直接中断线程的运行。但是这种方式,对程序来说并不友好。哪里不友好呢?oralce的官网上,给了详细的说明为什么stop方法过时了?简单翻译一下:其实,最主要的原因就是:一旦对某一个线程执行了stop方法,该线程会释放其持有的所有的锁。一旦锁被释放,被这些锁保护的对象,就会对其它线程可见,并可以对该对象进行并发操作,...原创 2020-02-14 23:41:59 · 301 阅读 · 0 评论 -
线程通信问题
最近看了一篇关于线程通信的文章,把其中涉及的代码都看了一下。对其中容易出错的细节进行了批注以及补充,作笔记使用。原文地址:https://mp.weixin.qq.com/s/weETO43GKX5yEUPCWYi3wQ感谢作者的分享在多线程环境中,线程之间经常需要协同合作,线程之间的协同就会涉及到线程通信的问题。线程之间通信的方式有很多,我们主要说比较常用的4种.1 .wait+not...原创 2019-05-05 19:08:54 · 318 阅读 · 0 评论 -
关于interrupt,isInterrupted,interrupted()方法
标题所说的三个方法都是Thread类的方法。均和线程停止有关。jdk早期,停止线程的API是stop方法,由于不安全的因素,jdk1.2开始废弃了该方法,目前该方法已经打上了@Deprecated注解,代表过时jdk1.2之后,停止一个线程的方式是:Thread类的interrupt方法。我先介绍一下两个概念:当前线程此线程当前线程:执行interuptTest方法的main方法所...原创 2019-05-06 19:21:30 · 235 阅读 · 0 评论 -
多线程Retry: 解释
今天在看多线程源码时,发现了一个Retry:,之前没有使用过这个符号。不知道干嘛的,就查了一下,然后自己试了一下,知道是干嘛的了。这个符号不是java的关键字,就是多线程大师Doug Lea大神自定义的一个符号,可以换成任意的符号,比如 a,b,c之类的都行。这种写法就是自定义一个标记。注意:这种标记只能出现在循环关键字的上方,其他地方写会报编译错误的。我们做个测试:不加这种标记的话,...原创 2019-05-30 17:41:09 · 507 阅读 · 0 评论 -
线程池的状态
jdk1.5,sun公司邀请Doug Lea为jdk1.5设计了concurrent包,对java的影响以及整个it行业都产生了深远影响。在此贴一张Doug老爷子的照片,以表敬仰步入正题,最近正在看ThreadPoolExecutor的知识,看到线程状态的知识。感觉比较碎,在此记录一下。并发包中,记录的线程池一共有4种状态...原创 2019-06-19 17:15:17 · 132 阅读 · 0 评论 -
synchronized是可重入锁吗,及其实现原理?
先说答案吧!synchronized是可重入锁。可重入锁的关键是:同一个线程重复请求由自己持有的对象时,可以请求成功而不会发生死锁。在网上看见一个例子,感觉不错。我自己试了一下,可以证明synchronized是可重入锁子类package cn.org.test;/** * *****************************************************...原创 2019-08-24 19:09:45 · 10110 阅读 · 0 评论