java中sleep方法为什么是静态的? | 您所在的位置:网站首页 › 静态类和静态方法的关系是什么 › java中sleep方法为什么是静态的? |
其实很简单. 现在的实现, 是只能sleep当前的线程.当前线程是自愿的. 让sleep()成为实例方法, 当前线程可以直接sleep别的线程, 会引入很多 多线程问题,例如死锁。. 很直接的例子就在Thread类里, 大家看Java api: http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html destroy(), suspend(), stop(),resume()这些实例方法都已经被deprecated(弃用)。 活下来的是哪些? 只有static方法(只对当前线程操作和一些比较温和的实例方法, 如getXXX(), isXXX(), join(), yield()等. 这里解释了destroy(), suspend(), stop(),resume()为什么deprecated http://docs.oracle.com/javase/7/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html 如果sleep不是静态的,则只对当前进程作用. 而是实例方法, 那么应该和suspend有同样的问题, 死锁.
|
CopyRight 2018-2019 实验室设备网 版权所有 |