调用线程
重写run()
extends Thread
implements Runnable
重写call()
implements Callable<>
线程分配
<b>N</b>thread = <b>N</b>cpu * <b>U</b>cpu * (1+w/c)
<b>N</b>cpu
核数目:Runnable.getRunTime().availableProcessors()得到
如何优雅结束一个线程
interrupt()
打断(干扰)某个线程,设置标志位
IsInterrupted()
查询某线程是否被打断过,查询标志位
static interrupted()
查询当前线程是否被打断过,并重置打断标志
interrupt()无法干扰synchronized和Lock.lock抢锁过程
若想打断正在竞争锁的过程,使用ReentrantLock.lockInterruptibly()
Java线程与常用线程池体系
ScheduledExecutorService
增加定时任务相关功能
AbstractExecutorService
抽象类
ScheduledThreadPoolExecutor
定时任务线程池
ForkJoinPool
新型线程池
运用于大任务拆小任务,任务无限多的场景
Executors
线程池工具类,定义了一些快速使用线程池的方法