Java并发
未读
线程生命周期(状态)
1、简介 当线程被创建并启动以后,它既不是已启动就进入了执行状态,也不是一直处于执行状态。在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5 种状态。尤其是当线程启动以后,它不可能一直"霸占"着 CPU 独自运行,
Java并发
未读
SynchronousQueue和LinkedBlockingQueue的区别
无界队列:当 this.queues <= 0 时,使用 SynchronousQueue(无容量,直接传递任务给线程)。 有界队列:当 this.queues > 0 时,使用 LinkedBlockingQueue(固定容量,可缓冲任务)。 关键区别: SynchronousQueue:任务提交
Java并发
未读
synchronized的实现原理
【得分点】 对象头、锁升级 【参考答案】 标准回答 synchronized的底层是采用Java对象头来存储锁信息的,并且还支持锁升级。 Java对象头包含三部分,分别是Mark Word、Class Metadata Address、Array length。其中,Mark Word用来存储对象的
Java并发
未读
submit和execute的区别
1、submit 提交指定的任务去执行并且返回 Future 对象,即执行的结果 2、execute 开启线程,执行池中的任务 3、区别 execute()方法用于提交不
Java并发
未读
shutdown和shutdownNow的区别
1、如何正确关闭线程池 示例: public class ShutDownThreadPoolDemo {
private ExecutorService service = Executors.newFixedThreadPool(10);
public static void m