线程
棉花糖one.
学到老
展开
-
线程池的参数设置
(1)corePoolSize:核心线程数,核心线程会一直存活,即使没有任务需要处理。当一个任务通过execute(Runnable)方法欲添加到线程池时:如果此时线程池中的线程数小于corePoolSize,即使线程池中的线程空闲,线程池也会优先创建新线程来处理任务,而不是直接交给现有的线程处理。如果此时线程池中的数量等于 corePoolSize,但是缓冲队列 workQueue未满,那么任务被放入缓冲队列。如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并转载 2020-08-11 22:37:46 · 468 阅读 · 0 评论 -
多线程情况下如何保证线程安全
一、线程安全等级其实线程安全并不是一个“非黑即白”单项选择题。按照“线程安全”的安全程度由强到弱来排序,我们可以将java语言中各种操作共享的数据分为以下5类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。1、不可变 在java语言中,不可变的对象一定是线程安全的,无论是对象的方法实现还是方法的调用者,都不需要再采取任何的线程安全保障措施。如final关键字修饰的数据不可修改...转载 2020-05-01 15:50:18 · 3092 阅读 · 0 评论 -
ForkJoin框架使用
ForkJoin 框架是Java7提供的用于并行执行任务的框架,是把一个大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。要想使用ForkJoin框架,必须首先创建一个ForkJoin任务,称之为ForkJoinTask,提供Fork和Join操作的机制,不需要直接继承ForkJoinTask类,只需要继承它的子类。子类有两个:RecursiveAction: 用于返回...转载 2020-04-14 11:03:38 · 116 阅读 · 0 评论