美文网首页
Java多线程实现方式

Java多线程实现方式

作者: 元气满满小酒窝 | 来源:发表于2017-02-07 17:01 被阅读0次

包含三种方式:

(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

相关文章

  • java多线程

    1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用E...

  • Q&A-04 多线程&分布式

    1、Java实现多线程有哪几种方式 Java 多线程实现方式主要有四种: 继承Thread类 实现Runnable...

  • Java基础(六)

    多线程 Java多线程并发 1.1 JAVA 并发知识库 1.2 JAVA 线程实现/创建方式 1.2.1 继承 ...

  • 多线程(最全面试题04)

    Java实现线程有哪几种方式?1、继承Thread类实现多线程2、实现Runnable接口方式实现多线程3、使用E...

  • 多线程经典面试题及答案

    java实现线程有哪几种方式 1.继承Thread类实现多线程2.实现Runnable接口方式实现多线程3.使用线...

  • Thread,Runnable和Callable

    Java多线程实现方式:Thread,Runnable,Callable多线程是乱序执行Thread===1.Th...

  • Java多线程知识点

    1.java中实现多线程的几种方式 java中实现多线程的方式主要有两种,第一种是继承Thread类,第二种是实现...

  • Java多线程-实例解析

    Java多线程实例 3种实现方法 Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Th...

  • Java中的多线程实现方式

    Java中的多线程实现方式 在我们的开发的过程中,常常会碰到多线程的问题,对于多线程的实现方式主要有两种:实现Ru...

  • java并发编程(一)

    **java多线程编程(一)** 基本实现方式及同步原理 --- 三种实现方式: 1、继承Thr...

网友评论

      本文标题:Java多线程实现方式

      本文链接:https://www.haomeiwen.com/subject/pvlmittx.html