美文网首页
多线程基础(三)

多线程基础(三)

作者: Maxinxx | 来源:发表于2019-03-06 21:53 被阅读0次

有两种方式可以实现多线程程序
方式1:继承Thread类。方式1的实现方法请戳链接。
https://www.jianshu.com/p/e2a065945805
方式2:实现Runnable接口。

一、线程的生命周期

新建:创建线程对象
就绪:有执行资格,没有执行权
运行:有执行资格,有执行权
阻塞:由于一些操作让线程处于了该状态。没有执行资格,没有执行权。而另一些操作却可以把它给激活,激活后处于就绪状态。
死亡:线程对象变成垃圾,等待被回收。


线程的生命周期

二、Runnable接口

步骤:
A:自定义MyRunnable实现Runnable接口
B:重写run()方法
C:创建MyRunnable的对象
D:创建Thread类的对象,并把C步骤的对象作为构造参数传递

public class MyRunnable implements Runnable{
    @Override
    public void run() {
        for(int i = 0; i < 100; i++) {
            //由于实现接口的方式就不能直接使用Thread类的方法了,但是可以间接的使用
            System.out.println(Thread.currentThread().getName() + "---" + i);
        }
    }
}
    public static void main(String[] args) {
        MyRunnable my = new MyRunnable();
//      Thread(Runnable target, String name)
        Thread t1 = new Thread(my, "one");
        Thread t2 = new Thread(my, "two");
        
        t1.start();
        t2.start();
    }

可以是使用setName给线程起名字。

思考题:实现接口方式的好处是什么?

答:1、可以避免由于Java单继承带来的局限性。(因为每个子类只能继承一个父类,如果一个类已经有了一个父类了,所以它就不能继承Thread类,就无法实现多线程了。但是有了Runnable接口,它可以通过实现这个接口来实现多线程。)
2、适合多个相同程序的代码去处理同一个资源的情况,把线程同程序的代码、数据有效分离,较好的体现了面向对象的设计思想。(对于继承Thread类的方法,如果这个子类里面有成员方法,由于实现这个类的时候需要new多个,所以成员方法就有多份。但是对于实现Runnable接口的方法,只需要new一个实例实现这个接口,其他的多个实现类只需要把这个接口的实例当做参数传进去即可,成员方法就只有一份了。)

相关文章

  • OC多线程分享pthread&NSThread

    一.多线程基础{ 二.pthread{ 三.NSThread{

  • Java基础

    Java基础 集合基础 集合框架 多线程基础 多线程框架 反射 代理 集合基础 ArrayList LinkedL...

  • Java多线程 ----(1)多线程基础

    1、什么是多线程和使用多线程的意义2、多线程基础知识点框架图3、实现多线程的三种方式4、三种方式对比 1、什么是多...

  • GeekBand - iOS 多线程和RunLoop 总结

    iOS 开发高级进阶 第三周 多线程 Runloop iOS 多线程以及 RunLoop 学习总结 基础知识 什么...

  • 多线程基础(三)

    有两种方式可以实现多线程程序方式1:继承Thread类。方式1的实现方法请戳链接。https://www.jian...

  • AQS简简单单过一遍

    前言 回顾前面: 多线程三分钟就可以入个门了! Thread源码剖析 多线程基础必要知识点!看了学习多线程事半功倍...

  • Java锁机制了解一下

    前言 回顾前面: 多线程三分钟就可以入个门了! Thread源码剖析 多线程基础必要知识点!看了学习多线程事半功倍...

  • Lock锁子类了解一下

    前言 回顾前面: 多线程三分钟就可以入个门了! Thread源码剖析 多线程基础必要知识点!看了学习多线程事半功倍...

  • iOS 多线程系列 -- NSOperation

    iOS 多线程系列 -- 基础概述iOS 多线程系列 -- pthreadiOS 多线程系列 -- NSThrea...

  • iOS 多线程系列 -- GCD全解二(常用方法)

    iOS 多线程系列 -- 基础概述iOS 多线程系列 -- pthreadiOS 多线程系列 -- NSThrea...

网友评论

      本文标题:多线程基础(三)

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