Java 线程被中断意味着什么?

Java 线程被中断意味着什么?,java,multithreading,threadpool,Java,Multithreading,Threadpool,比方说,我使用executorService在java中生成多个线程,如下所示: public class AbcThreadPool { private final AbcThreadPoolExecutor executor; public InventoryAvailabilityThreadPool(final AbcRunnableFactory factory, final In

比方说,我使用executorService在java中生成多个线程,如下所示:

public class AbcThreadPool {

    private final AbcThreadPoolExecutor executor;

    public InventoryAvailabilityThreadPool(final AbcRunnableFactory factory,
                                           final Integer poolSize) {
        executor = new AbcThreadPoolExecutor(factory, poolSize);

        for (int i = 0; i < poolSize; ++i) {
            executor.execute(factory.createRunnable());
        }
    }

    private static class AbcThreadPoolExecutor extends ThreadPoolExecutor {

        private final AbcRunnableFactory factory;

        public AbcThreadPoolExecutor(final AbcRunnableFactory factory,
                                                       final int poolSize) {
            super(poolSize, poolSize, 0, TimeUnit.SECONDS, new LinkedBlockingQueue<>());
            this.factory = factory;
            allowCoreThreadTimeOut(false);
        }
    }


    @Override
    protected void afterExecute(Runnable r, Throwable t) {
        if (!isShutdown() && !Thread.currentThread().isInterrupted()) {
            execute(factory.createRunnable());
        }
    }
}
公共类AbcThreadPool{
私人最终ABCThread池执行人执行人;
公共资源清册可用性线程池(最终AbcRunnableFactory,
最终整数池大小){
executor=新AbcThreadPoolExecutor(工厂,池大小);
对于(int i=0;i
在afterExecute中,我们使用的条件是!isShutdown()&!Thread.currentThread().isInterrupted()


我想知道线程关闭或被中断是什么意思。在这种情况下,我们不执行runnable。对于进程关闭或中断,我认为它相当于CTRL+C。但是在线程中,它们是进程内部运行的小东西。怎么会有我只杀死一个线程的Ctrl+C呢。

一个线程会被中断,因为,比方说,你已经在线程上调用了
interrupt()
方法。请参阅
public inventory availability threadpool(…
这不会编译…
@在执行后覆盖受保护的void(…
您在
AbcThreadPool extends Object
中覆盖了什么?我理解您的问题,但这段代码在做什么?