有人知道,Java中Thread.sleep背后的逻辑是什么? 。他们是否使用计时器java中Thread.sleep()的逻辑是什么
0
A
回答
4
那么,你也可以看看这里http://openjdk.java.net。 For ver。 7在jvm.cpp中有一些有趣的代码:
JVM_ENTRY(void, JVM_Sleep(JNIEnv* env, jclass threadClass, jlong millis))
JVMWrapper("JVM_Sleep");
if (millis osthread()->get_state();
thread->osthread()->set_state(SLEEPING);
os::sleep(thread, MinSleepInterval, false);
thread->osthread()->set_state(old_state);
}
} else {
ThreadState old_state = thread->osthread()->get_state();
thread->osthread()->set_state(SLEEPING);
if (os::sleep(thread, millis, true) == OS_INTRPT) {
// An asynchronous exception (e.g., ThreadDeathException) could have been thrown on
// us while we were sleeping. We do not overwrite those.
if (!HAS_PENDING_EXCEPTION) {
// TODO-FIXME: THROW_MSG returns which means we will not call set_state()
// to properly restore the thread state. That's likely wrong.
THROW_MSG(vmSymbols::java_lang_InterruptedException(), "sleep interrupted");
}
}
thread->osthread()->set_state(old_state);
}
JVM_END
0
如果您的意思是“内部如何实现Thread.sleep()
”,那么这是一个本地方法,这意味着它依赖于平台和JVM实现。我希望大多数实现依赖于底层操作系统提供的线程机制。
1
在您看来问的意义上,“逻辑背后”Thread.sleep()
将在操作系统内核或系统库中实现。
因此,“逻辑”可能因操作系统而异。对于Linux,BSD或OpenSolaris等开放源代码操作系统,您可以深入研究OS源代码来弄清楚。对于封闭的源操作系统,您可能需要采取逆向工程。不管怎样,实现“逻辑”(例如,是否使用定时器)可能不同于操作系统,操作系统和操作系统版本,也可能不同。
+0
感谢斯蒂芬的指导。 – 2010-03-08 07:32:11
相关问题
- 1. 这是什么逻辑法?
- 2. Sed/Vim中的逻辑与是什么?
- 3. 查询的逻辑是什么?
- 4. 分页背后的逻辑是什么?
- 5. t后面的逻辑是什么('flash.notice.order.creditcard.valid')?
- 6. jquery window.width的逻辑是什么?
- 7. 这个逻辑的输出是什么?
- 8. LINQ C#查询的逻辑是什么?
- 9. 这个分形的逻辑是什么?
- 10. 这段代码的逻辑是什么?
- 11. 这个java代码背后的逻辑是什么
- 12. MVP中渲染逻辑和业务逻辑之间的准则是什么?
- 13. 什么是NOR逻辑运算符?
- 14. 序言 - 这是什么逻辑
- 15. 背后是什么PERCENTILE_CONT逻辑()
- 16. 什么是Business Objects?什么是业务逻辑?
- 17. java中的模糊逻辑
- 18. Java中的逻辑回归
- 19. 我的do ...逻辑和继续逻辑有什么问题?
- 20. 什么替代thread.sleep
- 21. 在Java(BlueJ)中打印此模式的可能逻辑是什么?
- 22. 在struts中使用逻辑标签的目的是什么?
- 23. MongoDB - Java - 什么是最简单的方法来结合逻辑OR和逻辑AND?
- 24. Java逻辑XOR(“^”)与逻辑NOT(“!”)
- 25. 是什么了Thread.Sleep(9000升)和Thread.sleep代码(9000)
- 26. 什么是OpenGL上下文中的逻辑缓冲区?
- 27. x,y = y,x在Python中交换值的逻辑是什么?
- 28. Prolog中符合逻辑的'not'是什么?
- 29. 将@interface放在.m文件中的逻辑是什么?
- 30. 数字逻辑中if-clause的组件是什么?
Thanks Ash,但本机代码中使用的任何编码逻辑。 – 2010-03-08 07:06:31
这是一个问题吗?如果是这是什么意思? – EJP 2010-03-08 09:47:15