发编程之Java中如何实现多线程(上)

3 篇文章 0 订阅
3 篇文章 0 订阅

java多线程有4种实现方法

1、继承Thread类实现,重写run方法

2、实现Runnable接口,重写run方法

3、实现Callable接口通过FutureTask包装器来创建Thread线程

4、通过线程池创建线程

 

接下来我会通过例子为大家展现各个方法的不同之处

 

一、继承Thread类实现多线程的步骤:

      1. 在Java中负责实现线程功能的类是java.lang.Thread 类。

      2. 可以通过创建 Thread的实例来创建新的线程。

      3. 每个线程都是通过某个特定的Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体。

      4. 通过调用Thread类的start()方法来启动一个线程

public class TestThread extends Thread {//自定义类继承Thread类    //run()方法里是线程体    public void run() {        for (int i = 0; i < 10; i++) {            System.out.println(this.getName() + ":" + i);//getName()方法是返回线程名称        }    }     public static void main(String[] args) {        TestThread thread1 = new TestThread();//创建线程对象        thread1.start();//启动线程        TestThread thread2 = new TestThread();//创建线程对象        thread2.start();//启动线程    }}
运行结果:Thread-0:0Thread-0:1Thread-0:2Thread-0:3Thread-1:0Thread-0:4Thread-1:1Thread-0:5Thread-1:2Thread-0:6Thread-1:3Thread-0:7Thread-1:4Thread-0:8Thread-1:5Thread-0:9Thread-1:6Thread-1:7Thread-1:8Thread-1:9

此种方式的缺点:如果我们的类已经继承了一个类,则无法再继承Threa类。

二、通过Runnable接口实现多线程

  1. 创建一个实现Runnable接口的类

  2. 实现Runnable接口中的抽象方法:run():将创建的线程要执行的操作声明在此方法中

  3. 创建Runnable接口实现类的对象

  4. 将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象

  5. 调用Thread类中的start():①启动线程②调用线程的run()--->调用Runnable接口实现类的run()

public class TestThread2 implements Runnable {//自定义类实现Runnable接口;    //run()方法里是线程体;    public void run() {        for (int i = 0; i < 10; i++) {            System.out.println(Thread.currentThread().getName() + ":" + i);        }    }    public static void main(String[] args) {        //创建线程对象,把实现了Runnable接口的对象作为参数传入;        Thread thread1 = new Thread(new TestThread2());        thread1.start();//启动线程;        Thread thread2 = new Thread(new TestThread2());        thread2.start();    }}

执行结果与上一种方法类似。

 

注:本文为Wayne原创,未经许可不得在任何平台转载。如需转载,与作者联系~

关注微信公众号:智识训练营(微信ID:TechBootcamp),获取更多资讯~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值