
【解释】
在第二个红框处,我们就找到了keepAliveTime的身影,那这是会有同学问,为什么用的是TimeUnit.NANOSECONDS啊?构造函数的入参里不是有unit可以指定吗?难道没有生效吗?其实不是这样的。而是在构造函数中,已经提前把keepAliveTime统一转换为纳秒为单位了。如下所示:


其作用是中断此线程(此线程不一定是当前线程,而是指调用该方法的Thread实例所代表的线程),但实际上只是给线程设置一个中断标志,线程仍会继续运行。
作用是测试当前线程是否被中断(检查中断标志),返回一个boolean并清除中断状态,第二次再调用时中断状态已经被清除,将返回一个false。
作用是只测试此线程是否被中断 ,不清除中断状态。

把anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则招聘异常
表示如果可能的话,将anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则返回false.
把anObject加到BlockingQueue里,如果BlockQueue没有空间,则调用此方法的线程被阻断直到BlockingQueue里面有空间再继续.
取走BlockingQueue里排在首位的对象,若不能立即取出,则可以等time参数规定的时间,取不到时返回null
取走BlockingQueue里排在首位的对象,若BlockingQueue为空,阻断进入等待状态直到Blocking有新的对象被加入为止
其中:BlockingQueue 不接受null 元素。试图add、put 或offer 一个null 元素时,某些实现会抛出NullPointerException。null 被用作指示poll 操作失败的警戒值。
源码解析:ThreadPoolExecutor (完)