随笔分类 - 线程
摘要:Java线程池 - (二)内置线程池ExecutorService接口是Java内置的线程池接口,整体的继承关系如下: 其常用方法有: void shutdown() - 启动一次顺序关闭,执行以前提交的任务,但不接受新任务 List<Runnable> shutdownNow() - 停止所有正在
阅读全文
摘要:首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。 所以,Thread.stop, Thread.suspend, Thread.resume 都已经被废弃了。 而 Thread.interrupt 的作用其实也不是中断线程,而是「通知线程应该中断了」, 具体到底中断还是继
阅读全文
摘要:为什么会有happens-before 规则? 因为jvm会对代码进行编译优化,指令会出现重排序的情况,为了避免编译优化对并发编程安全性的影响,需要happens-before规则定义一些禁止编译优化的场景,保证并发编程的正确性。 主要解决多线程的可见性和排序性,解决不了原子性 public cla
阅读全文
摘要:前言我们常用的创建线程方式一般有下面 2 种: 继承Thread,重写run方法实现Runnable接口,重新run方法其实在 Executor 框架中还有一种方法可以实现异步,那就是实现 Callable 接口并重写call方法。虽然是实现 Callable ,但是在 Executor 实际运行时
阅读全文