Hi!欢迎光临陕西省的权威思科、华为、Oracle、红帽、深信服、微软认证培训中心!
| 029-88235527
您现在所在位置:首页 > 新闻资讯 > 最新资讯 >

Java编程开发创建线程的方式

发布日期:2019-06-12 10:56:17点击次数:

分享到:
                                                                     Java编程开发创建线程的方式
  Java编程开发创建线程的方式

  实现多线程的3种方式

  继承Thread类

  看jdk源码可以发现,Thread类其实是实现了Runnable接口的一个实例,继承Thread类后需要重写run方法并通过start方法启动线程。

  继承Thread类耦合性太强了,因为java只能单继承,所以不利于扩展。

  实现Runnable接口

  通过实现Runnable接口并重写run方法,并把Runnable实例传给Thread对象,Thread的start方法调用run方法再通过调用Runnable实例的run方法启动线程。

  所以如果一个类继承了另外一个父类,此时要实现多线程就不能通过继承Thread的类实现。

  实现Callable接口

  通过实现Callable接口并重写call方法,并把Callable实例传给FutureTask对象,再把FutureTask对象传给Thread对象。它与Thread、Runnable最大的不同是Callable能返回一个异步处理的结果Future对象并能抛出异常,而其他两种不能。

  示例代码

  importjava.util.concurrent.Callable;

  importjava.util.concurrent.FutureTask;

  *Createdbybinzhangon2019/3/23.

  publicclassTestThread{

  staticclassThread1extendsThread{

  @Override

  publicvoidrun(){

  System.out.println("Thread1running...");

  }

  }

  staticclassThread2implementsRunnable{

  @Override

  publicvoidrun(){

  System.out.println("Thread2running...");

  }

  }

  staticclassThread3implementsCallable{

  @SuppressWarnings("unchecked")

  @Override

  publicTcall()throwsException{

  System.out.println("Thread3running...");

  return(T)newString("hellocallable...");

  }

  }

  publicstaticvoidmain(String[]args)throwsException{

  Thread1t1=newThread1();

  Threadt2=newThread(newThread2());

  FutureTaskft=newFutureTask<>(new>());

  Threadt3=newThread(ft);

  t1.start();

  t2.start();

  t3.start();

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

  }

  }

  输出

  Thread1running...

  Thread2running...

  Thread3running...

  hellocallable...

  java编程语言从创建一直延续到现在,始终是大多数程序员追捧的编程语言之一。对于java语言的适应性以及实用性是不言而喻的。因此,IT的小白大部分也就选择了java编程的培训课程。西安java培训从基础开始授课,结合项目实操练习。学习java编程培训就到西安鸥鹏java培训班,免费试听课程,感受java带给你的独特魅力。

  

相关阅读