线程创建的四种方式

8 篇文章 0 订阅

方式一:创建Thread子类

  1. 创建子类继承Thread类。
  2. 子类中重写Thread类中的run()方法(通常run方法即为实现线程功能的方法)。
  3. 创建Thread子类对象(即创建了线程对象)。
  4. 调用线程对象start方法:启动线程(即调用run())。

方式二:实现Runnable接口

  1. 创建Runnable接口子类
  2. 子类中重写接口中实现run()方法
  3. 通过Thread类含参构造器创建线程对象
  4. 将Runnable接口子类对象作为参数传递给Thread类的构造器中。
  5. 调用Thread类的start方法:开启线程(即调用run方法)

方式三:实现Callable接口

  1. 创建Callable接口子类
  2. 子类中重写接口中的实现方法call()方法
  3. 创建Callable接口的实现类的对象
  4. 将实现类对象作为参数传递到FutureTask类的构造器内,创建FutureTest的对象
  5. 将FutureTask的对象作为参数传递到Thread类构造器中,创建Thread对象并调用start()方法启动线程
  6. 调用get()方法获取Callable中call方法的返回值(需要返回值时可加此步)

方式四:利用线程池

  1. 创建Runnable接口子类(或创建Callable接口子类)
  2. 子类中重写接口中的实现方法run()(或call()方法)
  3. 提供指定线程数量的线程池
  4. 执行指定的线程的操作。需要提供实现Runnable接口或Callable接口实现类的对象
  5. 关闭连接池
    3>ExecutorService executorService = Executors.newFixedThreadPool(线程个数);
    4>executorService.execute(Runnable的实现类对象)或executorService.execute(Callable的实现类的对象)
    5>executorService.Shutdown();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值