Pet*_*ter 8 java theory concurrency future callable
我正在理解细粒度util.concurrency.Java的实现在哪里Callable
并Future
位于JVM中?
我找到了Future类,它描述了Java lang中的高级未来,我试图找到它在较低级别描述的位置.
总而言之,找到Future和Callable的实际实现会很有意思,例如:处理Future.get()或Callable.call()的JVM部分,并规定它们应该如何工作.
期待您的回复,Akonkagva
Gra*_*ray 10
位于JVM中的Java Callable和Future的实现在哪里?
Future
接口的主要实现是FutureTask
类.它由ExecutorService
类用于表示提交的作业等. Callable
(例如Runnable
)是一个您自己实现的简单接口.它包装了您希望ExecutorService
线程池执行的任务.您应该下载这些类的源jar并亲自查看Java代码.
这些类都不包含任何JVM黑魔法或任何东西.例如,如果构造一个Callable
类,除非将其提交给线程池,否则它不会在另一个线程中运行.您可以Callable
在与线程无关的许多不同位置使用它.
JVM"黑魔法"周围Future
并且Callable
主要包含在Thread
类中.它具有底层本机支持,可与OS线程一起完成在另一个线程中运行任务的实际工作.如果你想看看它的作用,那里仍然有很多Java代码,但是本机和操作系统调用真的很神奇.
这是一个关于如何使用 1.5中添加到Java 的执行程序服务的好教程.