多线程
文章平均质量分 70
JonyShan
这个作者很懒,什么都没留下…
展开
-
线程池,这一篇或许就够了
为什么用线程池创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率>例如:>>记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3>>如果T1+T3>T2,那么是不是说开启一个线程来执行这个任务太不划算了!>>正好,线程池缓存线程,可用已有的闲置线程来执行新任务,避免了T1+T3带来的系统开销线程并发数量过多,抢占系统转载 2017-04-20 09:32:40 · 268 阅读 · 0 评论 -
一个不错的线程讲解系列,记录下来以便学习(最近研究多线程以及并发)
http://www.cnblogs.com/skywang12345/p/java_threads_category.html转载 2017-04-26 11:33:37 · 292 阅读 · 0 评论 -
for循坏遍历list过程中remove某个元素出错,从源码角度解释
123456789101112public class Test { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(2); Iterator iterator = list.iterator(); while(it转载 2017-04-24 18:32:11 · 473 阅读 · 0 评论 -
利用jstack查看线程运行状态
首先一段代码public class P173ThreadState { public static void main(String[] args) { new Thread(new TimeWaiting(),"TimeWaitingThread").start(); new Thread(new Waiting(),"WaitingThread").start(); //原创 2017-04-26 23:13:39 · 6921 阅读 · 1 评论 -
有状态和无状态的对象区别
最近在读《java并发编程实战》,看这个之前我还特意先看了《java并发编程艺术》不过读起来还是有点吃力,不只是翻译问题还是我理解能力问题,很多句子读不懂。记录一下遇到的一些基础知识的知识点以便以后查看。第一:基本概念: 1、有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何转载 2017-11-20 12:56:09 · 757 阅读 · 0 评论 -
线程退出的几种方式
使用volatile类型的域来保存取消状态因为volatile本身特性,每次修改都会立刻刷新到缓存中,这样就可以保证线程任务可以及时看到下面代码示例,在线程运行一秒后取消任务:public class PrimeGenerator implements Runnable{ private final List primes = new ArrayList<>(); private原创 2017-12-31 00:04:09 · 5837 阅读 · 0 评论 -
线程池饱和策略附上测试代码
问:线程池中线程用完了怎么办?答:放到队列中问:那队列也用完了呢?。。。。下面就是饱和策略登场了首先设置饱和策略的方式,就是下面这个了executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());1、Abort策略 这个也是线程池默认的饱和策略,该策略是抛出一个RejectedExecution...原创 2018-04-09 00:01:13 · 371 阅读 · 0 评论 -
小心linux自动杀死进程的操作(kill -9 pid)
这两天部署在linux上的程序老是莫名其妙的自动停止而且没有任何日志打印,纠结好长时间后发现linux的message.log日志中有一句,如下:因为内存占用过多会杀死一个占用最多的进程Apr 2 21:44:01 shanyao kernel: Out of memory: Kill process 14268 (java) score 378 or sacrifice childApr ...原创 2018-04-02 22:47:25 · 10043 阅读 · 3 评论