Java多线程 java實现的方式有四种
-
4.通过线程 java池创建线程 java
前面两种可以归结为一类:无返回值原因很简单,通过重写run方法run方式的返回值是void,所以没有办法返回结果
后面两种可以归结成一类:有返回值通过Callable接口,就要实现call方法这个方法的返回值是Object,所以返回的结果可以放在Object对象中
方式1:继承Thread类的线程 java实现方式如下:
线程 java实现方式2:通过实现Runnable接口实现run方法,接口的实现类的实例作为Thread的target作为参数传入带参的Thread构造函数通過调用start()方法启动线程 java
Thread-0–>我是通过实现接口的线程 java实现方式!
线程 java实现方式4:通过线程 java池创建线程 java
ExecutorService、Callable都是属于Executor框架。返回结果的线程 java是在JDK1.5中引入的新特征还有Future接口也是属于这个框架,有了这种特征得到返回值就很方便了
通过分析可以知道,他同样也是实现了Callable接口实现了Call方法,所以有返回值这也就是正好符合了前面所说的两种分类
执行Callable任务后,可以获取一个Future的对象在该对象上调用get就可以获取到Callable任务返囙的Object了。get方法是阻塞的即:线程 java无返回结果,get方法会一直等待
再介绍Executors类:提供了一系列工厂方法用于创建线程 java池,返回的线程 java池都实現了ExecutorService接口
-
创建一个可缓存的线程 java池,调用execute 将重用以前构造的线程 java(如果线程 java可用)如果现有线程 java没有可用的,则创建一个新线程 java并添加到池中终止并从缓存中移除那些已有 60 秒钟未被使用的线程 java。