
线程
文章平均质量分 91
weiythi
这个作者很懒,什么都没留下…
展开
-
哲学家就餐问题
5个哲学家,5把叉子,5盘意大利面(意大利面很滑,需要两把叉子才能拿起)大家围绕桌子,进行思考与进食。原创 2017-09-25 09:39:51 · 712 阅读 · 0 评论 -
深度解析Java 8:JDK1.8 AbstractQueuedSynchronizer的实现分析(上)
前言Java中的FutureTask作为可异步执行任务并可获取执行结果而被大家所熟知。通常可以使用future.get()来获取线程的执行结果,在线程执行结束之前,get方法会一直阻塞状态,直到call()返回,其优点是使用线程异步执行任务的情况下还可以获取到线程的执行结果,但是FutureTask的以上功能却是依靠通过一个叫AbstractQueuedSynchronizer的类来实现,转载 2017-11-29 11:09:37 · 396 阅读 · 0 评论 -
TBSchedule源码学习笔记-启动过程
TBSchedule源码学习笔记-启动过程TBSchedule基本概念及原理概念介绍TBSchedule是一个支持分布式的调度框架,能让一种批量任务或者不断变化的任务,被动态的分配到多个主机的JVM中,不同的线程组中并行执行。基于ZooKeeper的纯Java实现,由Alibaba开源。代码实现起步配置/* (non-Javadoc) * @see org.springframework.原创 2017-12-07 16:13:13 · 1654 阅读 · 0 评论 -
TBSchedule源码学习笔记-线程组任务调度
根据上文的启动过程,找到了线程组的实现。com.taobao.pamirs.schedule.taskmanager.TBScheduleManager/** * 1、任务调度分配器的目标: 让所有的任务不重复,不遗漏的被快速处理。 * 2、一个Manager只管理一种任务类型的一组工作线程。 * 3、在一个JVM里面可能存在多个处理相同任务类型的Manager,也可能存在处理不同任务类原创 2017-12-08 16:01:30 · 2044 阅读 · 0 评论 -
TBSchedule源码学习笔记-任务处理
上回说到每个线程组会创建自己的com.taobao.pamirs.schedule.taskmanager.TBScheduleManager实例来管理线程组,一个JVM中该实例的个数与结合调度机数目分配給JVM的数目一致。TBScheduleManager实例中会计算调度任务的启动时机(与控制台界面设置保持一致)。实际开发一个调度任务按框架要求需要实现com.taobao.pamirs.sched原创 2017-12-11 16:27:45 · 1022 阅读 · 0 评论 -
Java并发---- Executor并发框架--ThreadToolExecutor类详解(execute方法,关闭方法)
1、构造方法请参考上篇文章:http://blog.youkuaiyun.com/ochangwen/article/details/530447332、源码详解线程池能够复用线程,减少线程创建,销毁,恢复等状态切换的开销,提高程序的性能。一个线程池管理了一组工作线程,同时它还包括了一个用于放置等待执行的任务的队列。ThreadPoolExecuto转载 2017-12-06 17:15:47 · 1357 阅读 · 0 评论