【发布时间】:2013-10-25 17:43:39
【问题描述】:
在尝试比较在 Java 和 Scala 中实现的相同简单问题的“执行特性”时,我发现 Java 版本中的线程类运行在名称如下的线程上 Thread-x,而 Scala 演员在名称如 ForkJoinPool-x-worker-y 的线程上运行。 非线程 Java 类和非参与者 Scala 类始终在主线程上运行。
下面的日志片段将说明:
Java version: Scoord thread class running in Thread[Thread-0,5,main]
Semaphore class running in Thread[main,5,main]
Scala version: Scoord actor running in Thread[ForkJoinPool-1-worker-13,5,main]
Semaphore class running in Thread[main,5,main]
除了是不同类的实例之外,这些线程之间有什么区别
- Thread 类与 ForkJoinWorkerThread 类?工作线程如何映射到 O/S 内核线程执行?
任何关于用于 JVM 线程的命名约定的解释也将不胜感激。
这两个实现都在相同版本的 JVM 上运行 - HotSpot (TM) 64 位服务器 VM(内部版本 23.21-b01,混合模式)。硬件是 64 位 4 核 Acer 笔记本电脑,8G内存,运行 Windows 8。
【问题讨论】:
标签: java multithreading scala jvm