全国服务热线:400-035-8011

位置:忻州中公优就业IT培训学校 > 学校动态 > 带你3分钟了解多线程

带你3分钟了解多线程

来源:忻州中公优就业IT培训学校时间:2020/10/7 17:23:05

    1.什么叫多线程:
    一个进程中有多个线程,称为多线程。
    2.实现多线程的方法:
    实现多线程可以通过继承Thread类和实现Runnable接口。
    (1)继承Thread

    定义一个类继承Thread类:复写Thread类中的publicvoidrun()方法,将线程的任务代码封装到run方法中,直接创建Thread的子类对象,创建线程,调用start()方法,开启线程(调用线程的任务run方法)。另外可以通过Thread的getName()获取线程的名称。

忻州优就业Java培训课程

    (2)实现Runnable接口:
    定义一个类,实现Runnable接口;覆盖接口的publicvoidrun()的方法,将线程的任务代码封装到run方法中;创建Runnable接口的子类对象
    将Runnabl接口的子类对象作为参数传递给Thread类的构造函数,创建Thread类对象(原因:线程的任务都封装在Runnable接口子类对象的run方法中。所以要在线程对象创建时就必须明确要运行的任务)。调用start()方法,启动线程。
    两种方法区别:
    (1)实现Runnable接口避免了单继承的局限性
    (2)继承Thread类线程代码存放在Thread子类的run方法中
    实现Runnable接口线程代码存放在接口的子类的run方法中;在定义线程时,建议使用实现Runnable接口,因为几乎所有多线程都可以使用这种方式实现
    3.创建线程是为什么要复写run方法?
    Thread类用于描述线程。Thread类定义了一个功能,用于存储线程要运行的代码,该存储功能就是run方法。
    4.start()和run方法有什么区别?
    调用start方法方可启动线程,而run方法只是thread的一个普通方法,调用run方法不能实现多线程;
    Start()方法:
    start方法用来启动线程,实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片(执行权),就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。
    Run()方法:
    run()方法只是Thread类的一个普通方法,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到多线程的目的。
    5.线程的几种状态:
    新建:new一个Thread对象或者其子类对象就是创建一个线程,当一个线程对象被创建,但是没有开启,这个时候,只是对象线程对象开辟了内存空间和初始化数据。
    就绪:新建的对象调用start方法,就开启了线程,线程就到了就绪状态。在这个状态的线程对象,具有执行资格,没有执行权。
    运行:当线程对象获取到了CPU的资源。在这个状态的线程对象,既有执行资格,也有执行权。
    冻结:运行过程中的线程由于某些原因(比如wait,sleep),释放了执行资格和执行权。当然,他们可以回到运行状态。只不过,不是直接回到,而是先回到就绪状态。
    死亡:当线程对象调用的run方法结束,或者直接调用stop方法,就让线程对象死亡,在内存中变成了垃圾。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/2414/news/262229/违者必究! 以上就是忻州中公优就业IT培训学校 小编为您整理 带你3分钟了解多线程的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011