diff --git a/javaSE-day06/src/com/inmind/thread_pool10/Demo10.java b/javaSE-day06/src/com/inmind/thread_pool10/Demo10.java new file mode 100644 index 0000000..d1d1be6 --- /dev/null +++ b/javaSE-day06/src/com/inmind/thread_pool10/Demo10.java @@ -0,0 +1,44 @@ +package com.inmind.thread_pool10; + +import java.util.concurrent.*; + +/* +在java中使用一个接口表示线程池ExecutorService + +如何获取线程池对象?? +方式一:直接创建实现类ThreadPoolExecutor 的对象 +方式二:Executors(线程池)的静态方法 + +方式一的构造方法: +ThreadPoolExecutor( + int corePoolSize, + int maximumPoolSize, + long keepAliveTime, + TimeUnit unit, + BlockingQueue workQueue, + ThreadFactory threadFactory, + RejectedExecutionHandler handler) + +参数一:corePoolSize,指定线程池核心线程的数量 +参数二:maximumPoolSize,指定线程池的最大线程数量 +参数三:keepAliveTime,指定临时线程的存活时间 +参数四:unit,指定临时线程存活时间单位(秒,分,时,天) +参数五:workQueue 指定线程池的任务队列 +参数六:threadFactory,指定线程池的线程工厂 +参数七:handler,指定线程池的任务拒绝策略 + */ +public class Demo10 { + public static void main(String[] args) { + //使用多态创建线程池 + ExecutorService threadPool = new ThreadPoolExecutor( + 3, + 5, + 8, + TimeUnit.SECONDS, + new ArrayBlockingQueue<>(4), + Executors.defaultThreadFactory(), + new ThreadPoolExecutor.AbortPolicy()); + + System.out.println("程序程序"); + } +} diff --git a/javaSE-day06/src/com/inmind/thread_state09/Demo09.java b/javaSE-day06/src/com/inmind/thread_state09/Demo09.java new file mode 100644 index 0000000..347e45c --- /dev/null +++ b/javaSE-day06/src/com/inmind/thread_state09/Demo09.java @@ -0,0 +1,20 @@ +package com.inmind.thread_state09; +/* +线程状态。 线程可以处于以下状态之一: +NEW +1.新建状态 new Thread(),创建线程对象时 +RUNNABLE +2.运行状态 thread.start()线程启动就是运行状态 +BLOCKED +3.阻塞状态:遇到synchronized关键字,还没有锁对象,线程就处于阻塞状态 +WAITING +4.无限等待状态:当一个线程必须等着其他线程去唤醒,这就是无限等待状态(wait) +TIMED_WAITING +5.计时等待:当一个线程,等着时间到了,之后立马开始运行,这就是计时等待状态(sleep) +TERMINATED +6.结束状态: + 1.线程正常执行完毕,就是结束状态 + 2.线程非正常执行完毕,stop方法 + */ +public class Demo09 { +}