A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 2666fff 中级黑马   /  2015-5-10 23:02  /  675 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

线程在执行过程中,可以处于下面几种状态:

    就绪(Runnable):线程准备运行,不一定立马就能开始执行。
    运行中(Running):进程正在执行线程的代码。
    等待中(Waiting):线程处于阻塞的状态,等待外部的处理结束。
    睡眠中(Sleeping):线程被强制睡眠。
    I/O阻塞(Blocked on I/O):等待I/O操作完成。
    同步阻塞(Blocked on Synchronization):等待获取锁。
    死亡(Dead):线程完成了执行。

死锁(deadlock)
两个进程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁。结果就是两个进程都陷入了无限的等待中。
使用多线程的时候,一种非常简单的避免死锁的方式就是:指定获取锁的顺序,并强制线程按照指定的顺序获取锁。因此,如果所有的线程都是以同样的顺序加锁和释放锁,就不会出现死锁了。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马