ExecutorService中的 submit方法可以 Future<?> submit(Runnable task) 提交一个 Runnable 任务用于执行,并返回一个表示该任务的 Future。 恢复内容开始 java.util.concurrent里的接口Executors里面的静态方法 ...
分类:
编程语言 时间:
2020-05-21 21:21:58
阅读次数:
61
线程是一个动态执行的过程,它也有一个从产生到死亡的过程。 (1)生命周期的五种状态 a.新建(new Thread) 当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。 例如:Thread t1=new Thread(); b.就绪(runnable) 线程已经被启动,正在等 ...
分类:
编程语言 时间:
2020-05-20 10:52:10
阅读次数:
52
闭包与内部类 中英文社区中,比较常见的对闭包的定义是 ` 引用了自由变量的一段代码或函数,被引用的自由变量和函数(一段代码)共同存在,即使离开了创造它的环境 ` 内部类 按照我的理解,scala/java中虽然并不存在语法级地支持或是定义,对于闭包而言,一些概念和闭包的概念一致。一般理解scala中 ...
分类:
其他好文 时间:
2020-05-19 22:50:04
阅读次数:
62
线程的使用 新建线程 新建一个线程有两种方法:继承Thread类,然后重写run方法;实现Runnable接口,然后实现run方法。实际上Thread类也是实现的Runnable接口,再加上类只能单继承,所以推荐使用Runnable接口。示例如下: class Demo1 implements Ru ...
分类:
编程语言 时间:
2020-05-18 22:21:07
阅读次数:
51
类 CountDownLatch 倒计时锁 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等 ...
分类:
编程语言 时间:
2020-05-17 09:15:11
阅读次数:
71
1、引例 引用上一篇JMM中的开篇代码,再次针对性分析。 /** * 验证volatile原子性 */ public class AtomicityTest implements Runnable { volatile int i = 0; @Override public void run() { ...
分类:
编程语言 时间:
2020-05-17 01:25:44
阅读次数:
68
1、继承Thread 2、实现Runnable接口 3、实现Callable<V>接口 4、线程池 import java.util.concurrent.*; public class Test { public static void main(String[] args) throws Exe ...
分类:
编程语言 时间:
2020-05-17 01:00:00
阅读次数:
52
说起开始学习这个知识的书,还要从一件故事说起。一天看到有一个分析A::new和new A()的区别的博客,然后就想测试一下这二者到底有啥区别? 于是我就敲代码Donut::new,神奇的事情发生了,居然可以用这么多类型接收,而这个类Donut仅仅是个普通的类,既没有继承也没有实现Runnable,这 ...
分类:
编程语言 时间:
2020-05-16 18:53:29
阅读次数:
68
静态代理模式 多线程中Thread类,Runnable接口,start()方法 也可以以此类比。 ...
分类:
其他好文 时间:
2020-05-15 00:21:39
阅读次数:
48
Java多线程实现的四种方式 继承Thread类,重写run方法 实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 通过Callable和FutureTask创建线程 通过线程池创建线程 前面两种可以归结为一类:无返回值,原因 ...
分类:
编程语言 时间:
2020-05-14 22:27:47
阅读次数:
87