java并发编程_线程
创建进程
方式1,start一个新的线程,启动线程后回调new Runnable中的run方法,run方法调用结束后,JVM等待回收线程。
public class FutureTaskOne { public static void main(String[] args) throws Exception{ new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()); } }).start(); } }
方式2,通过Callable和FutureTask创建
线程池
为什么使用线程池?
当执行并发任务时,使用多线程处理任务。线程池,帮助我们将创建的线程管理起来。
巧记线程,线程池涉及的Executor、Runnable、Callable、Future、ThreadPoolExecutor等的协同参数工作原理及使用场景! 线程池优先要创建出基本线程池大小(corePoolSize)的线程数量,没有达到这个数量时,每次提交新任务,都会直接创建一个新线程,当达到了基本线程数量后,又有新任务到达,优先放入等待队列,如果队列满了,才去创建新的线程(不能超过线程池的最大数maxmumPoolSize)。
使用线程池有哪些好处:
使用线程池可以复用池中的线程,不需要每次都创建新线程,减少创建和销毁线程的开销; 同时,线程池具有队列缓冲策略、拒绝机制和动态管理线程个数,特定的线程池还具有定时执行、周期执行功能,比较重要的一点是线程池可实现线程环境的隔离,例如分别定义支付功能相关线程池和优惠券功能相关线程池,当其中一个运行有问题时不会影响另一个。
线程池有一个管理机制,什么管理机制(补充)?
FutureTask
posted on 2023-01-08 17:47 XiaoXiaoli 阅读(17) 评论(0) 编辑 收藏 举报