zoukankan      html  css  js  c++  java
  • Thread和Runnable的区别

    Java中有两钟实现多线程的方式:一种是继承Thread类,一种是实现Runnable接口,

    其中Runnable用的多,因为避免了继承的单一性(Thread),另外就是适合资源共享

    但是在使用Runnable定义的子类中没有start()方法,只有Thread类中才有。

    多线程有状态:新建 就绪 阻塞 运行  死亡状态

    新建状态:通过new一个县城 Thread t1=new Thread();

    就绪状态:调用线程的start()方法就是启动了线程

    运行状态:当线程获得CPU时间后,它才执行run方法

     阻塞状态(Blocked)

            线程运行过程中,可能由于各种原因进入阻塞状态:         

    1>线程通过调用sleep方法进入睡眠状态;        

     2>线程调用一个在I/O上被阻塞的操作,即该操作在输入输出操作完成之前不会返回到它的调用者;        

     3>线程试图得到一个锁,而该锁正被其他线程持有;      

       4>线程在等待某个触发条件;         ......           
            所谓阻塞状态是正在运行的线程没有运行结束,暂时让出CPU,这时其他处于就绪状态的线程就可以获得CPU时间,进入运行状态。


    死亡状态(Dead)

            有两个原因会导致线程死亡:         1) run方法正常退出而自然死亡,         2) 一个未捕获的异常终止了run方法而使线程猝死。

    总结很重要哦 方法得当,坚持会有奇迹哦
  • 相关阅读:
    CentOS7学习小记
    PHP的time函数返回时间不正确
    MySQL信息提示不是英文问题
    windows下ITOP安装
    Zend安装
    投资日记2015.6
    解决SecureCRT连接linux超时后断开[转]
    红黑树及生成超过32768随机数
    在宏定义中怎么使用可变参数
    C++堆上申请二维数组
  • 原文地址:https://www.cnblogs.com/sunyuhuan/p/7206149.html
Copyright © 2011-2022 走看看