Raw*_*oon 5 java multithreading jvm scala
在尝试比较Java和Scala中实现的同一个简单问题的"执行特性"时,我发现Java版本中的线程类在名为 Thread-x的线程上运行,而Scala actor在名称类似的线程上运行ForkJoinPool-x-worker-y.非线程Java类和非actor actor 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]
Run Code Online (Sandbox Code Playgroud)
除了作为不同类的实例 - Thread类和ForkJoinWorkerThread类之外,这些线程之间有什么区别?工作线程如何映射到O/S内核线程以执行?
关于用于JVM线程的命名约定的任何解释也将非常受欢迎.
两个实现都在相同版本的JVM上运行 - HotSpot(TM)64位服务器VM(内置23.21-b01,混合模式).硬件是64位,4核Acer笔记本电脑,内存为8G,运行Windows 8.
Scala 演员不是线程!它们是异步处理事件的对象 - 它们可能在不同的线程中运行。
Scala actor是一个类似于通信顺序进程的概念,但与线程不同。尽管如此,CSP 实现中通常使用线程,请参阅Go 语言。
| 归档时间: |
|
| 查看次数: |
1994 次 |
| 最近记录: |