一、线程概念
进程是正在运行的程序,是系统资源调度的基本单位,一个进程至少有一个线程,线程中可以共享内存资源
例如:进程执行多件事情,例如一遍听音乐,一遍打游戏,线程是一个事可以分成多线程执行
二、线程创建方式
①继承Thread类
②实现Ruannable接口
③实现Callable接口
三、线程池
在阿里巴巴Java开发手册中提到,避免使用Executors创建线程池,主要是避免使用其中的默认实现,那么我们可以自己直接调用ThreadPoolExecutor的构造函数来自己创建线程池
正确创建方法:
ExecutorService executor = new ThreadPoolExecutor(corePoolSize,//核心线程数 maximumPoolSize, //最大线程数 keepAliveTime,//当线程空闲时,所允许保存的最大时间,超过这个时间,线程将被释放销毁,但只针对于非核心线程。 unit,//时间单位,TimeUnit.SECONDS等 workQueue,//任务队列 threadFactory,//创建线程的工厂类 handler//拒绝策略 );
任务委托给线程池几种方法:
execute(Runnable)//不返回值,如果任务不要求返回值,则选择execute,可以极大提高性能
submit(Runnable)//返回值 submit(Callable)//返回值
关闭线程池
shutdown() 仅停止阻塞队列中等待的线程,正在执行的线程会执行结束。 shutdownNow() 不仅会停止阻塞队列中的线程,而且会停止正在执行的线程。
线程池工作原理:
四、线程声明周期
五、线程安全问题
标签:执行,队列,创建,线程,返回值,多线程 From: https://www.cnblogs.com/yfdfj/p/16711166.html