Java多线程实现方式

包含三种方式:

(1)继承Thread类,重写run函数

创建:

class xx extends Thread{{

public void run(){

Thread.sleep(1000)    //线程休眠1000毫秒,sleep使线程进入Block状态,并释放资源

}}

开启线程:

对象.start()    //启动线程,run函数运行

(2)实现Runnable接口,重写run函数

开启线程:

Thread t =newThread(对象)//创建线程对象

t.start()

(3)实现Callable接口,重写call函数

Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。

Callable和Runnable有几点不同:

①Callable规定的方法是call(),而Runnable规定的方法是run().

②Callable的任务执行后可返回值,而Runnable的任务是不能返回值的

③call()方法可抛出异常,而run()方法是不能抛出异常的。

④运行Callable任务可拿到一个Future对象,Future表示异步计算的结果。它提供了检查计算是否完成的方法,以等

待计算的完成,并检索计算的结果.通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果

JavaCallable代码示例:

class TaskWithResult implements Callable{

private int id;

public TaskWithResult(int id) {

this.id=id;

}

@Override

public String call() throws Exception {

return "result of TaskWithResult " + id;

}

}

public class CallableTest {

public static void main(String[] args) throws InterruptedException,

ExecutionException {

ExecutorServiceexec=Executors.newCachedThreadPool();

ArrayList>results=newArrayList>();    //Future 相当于是用来存放Executor执行的结果的一种容器

for (inti=0; i<10; i++) {

results.add(exec.submit(new TaskWithResult(i)));

}

for (Futurefs : results) {

if (fs.isDone()) {

System.out.println(fs.get());

} else {

System.out.println("Future result is not yet complete");

}

}

exec.shutdown();

}

}

运行结果:

result of TaskWithResult 0

result of TaskWithResult 1

result of TaskWithResult 2

result of TaskWithResult 3

result of TaskWithResult 4

result of TaskWithResult 5

result of TaskWithResult 6

result of TaskWithResult 7

result of TaskWithResult 8

result of TaskWithResult 9

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.继承Thread类创建线程 线程类 测试代码 2.实现Runable接口创建线程 线程类 测试代码 3.使用线...
    zxk175阅读 1,248评论 0 0
  • 线程和进程的区别: 一、关于进程和线程,首先从定义上理解就有所不同1、进程是什么? 是具有一定独立功能的...
    代码_搬运工阅读 4,123评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,408评论 19 139
  • 陌上花开蝴蝶飞,江山犹似昔人非。 遗民几度垂垂老,游女长歌缓缓归。 北宋词人苏东坡在九仙山游玩,听到有人...
    大笨笨熊熊阅读 3,222评论 8 9
  • 心灵整理,第一本入门书。 ——一百天阅读33本书,第二十本 《断舍离·心灵篇》山下英子 从“断舍离”开始,建立更深...
    怪兽老板的解忧杂货铺阅读 2,915评论 0 2