shutdown、shutdownNow、awaitTermination

1、shutdown()问:shutdown()有什么功能?答:阻止新来的任务提交,对已经提交了的任务不会产生任何影响。当已经提交的任务执行完后,它会将那些闲置的线程(idleWorks)进行中断,这个过程是异步的。问:如何阻止新来的任务提交?答:通过将线程池的状态改成SHUTDOWN,当再将执行execute提交任务时,如果测试到状态不为RUNNING,则抛出rejectedExecution,

- 阅读全文 -

Java 多线程三大核心

原子性Java 的原子性就和数据库事务的原子性差不多,一个操作中要么全部执行成功或者失败。JMM 只是保证了基本的原子性,但类似于 i++ 之类的操作,看似是原子操作,其实里面涉及到:获取 i 的值。自增。再赋值给 i。这三步操作,所以想要实现 i++ 这样的原子操作就需要用到 synchronized 或者是 lock 进行加锁处理。如果是基础类的自增操作可以使用 AtomicInteger 这

- 阅读全文 -