Callable和Future的实际实现

Pet*_*ter 8 java theory concurrency future callable

我正在理解细粒度util.concurrency.Java的实现在哪里CallableFuture位于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 的执行程序服务好教程.