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

本文详细介绍了Java中创建线程的三种主要方式:继承Thread类、实现Runnable接口和实现Callable接口。通过示例代码展示了每种方法的具体实现,对比了它们之间的优缺点,为Java开发者提供了实用的多线程编程指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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编程的培训课程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值