zoukankan      html  css  js  c++  java
  • Java多线程

    1.Java创建线程方法

        Java中有2种创建多线程的方法:

        第一种继承Thread类:Thread类是在java.lang包中定义的。

        第二种实现Runnable接口:在使用Runnable定义的子类中没有start()方法,只有Thread类中才有。

        第三种实现Callable和Future接口:接口种call()方法具有返回值。

        三种方法使用区别:

        1.实现Runnable接口可以避免Java类单继承的限制。

        2.当一组线程访问相同资源的时候,适合使用Runnable接口。

        3.如果需要返回值,可以使用Callable和Future。

    2.Java线程的五种状态

        新建状态:线程对象被创建后,即是新建状态。如:Thread t = new MyThread();

        就绪状态:创建的线程对象调用start()方法后,进入就绪状态。就绪状态的线程并不是已经执行,只是能够被CPU调用。

        运行状态:CPU调用处于就绪状态的线程,该线程才能真正被执行。就绪状态是进入运行状态的唯一入口,也就是说CPU只能调用就绪状态的线程。

        阻塞状态:处于运行状态的线程由于某种原因放弃对CPU的使用权,此时进入阻塞状态。直到再次进入就绪状态,才有可能被CPU调用。

                          根据阻塞产生的原因不同,阻塞状态可分为三种:

                           1.等待阻塞:运行状态中的线程执行了wai()方法,进入等待阻塞状态。

                           2.同步阻塞:线程在获得同步锁(synchronized)失败,进入同步阻塞状态。

                           3.其他阻塞:线程调用sleep(),join()或者发出I/O请求的时候,线程会进入阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、

                                                或者I/O处理完毕时,线程重新转入就绪状态。

         死亡状态:线程运行完了或者因为异常退出run()方法,表示该线程已经结束。

                          

  • 相关阅读:
    Java多线程的两种实现方式
    Java实现验证码的产生和验证
    web前端对上传的文件进行类型大小判断的js自定义函数
    Java前端Rsa公钥加密,后端Rsa私钥解密(支持字符和中文)
    了解火爆的区块链和比特币
    Java中调用JavaScript方法
    Java读取文件的问题
    SpringBoot热部署简介
    Java使用Jetty实现嵌入式Web服务器及Servlet容器
    『安全工具』目录扫描 DirBuster AND 御剑
  • 原文地址:https://www.cnblogs.com/michaelShao/p/8991582.html
Copyright © 2011-2022 走看看