我所知道的是,在JDK1.2之后,所有Java线程都是使用“本地线程模型”创建的,该模型在JNI和OS线程库的帮助下将每个Java线程与一个OS线程关联起来。
因此,从下面的文本中,我相信现在创建的所有Java线程都可以实现多核处理器的使用:
多个本机线程可以共存。因此,它也被称为多到多模型。该模型的这种特性使得它能够充分利用多核处理器的优势,并在单独的核上同时执行线程。
但是,当我读到在JAVA Compelete引用中的JDK 7中引入的Fork/Join框架时:
虽然最初的并发API本身令人印象深刻,但JDK 7对它进行了显著的扩展。最重要的是Fork/Join Framework。Fork/Join Framework为创建使用多处理器(如多核系统中的处理器)的程序提供了便利。因此,它简化了程序的开发,其中两个或两个以上的部分以真正的同时执行(即真正的并行执行),而不仅仅是时间切片。
这让我不禁要问,当‘模型’从JDK 3开始存在时,为什么会引入这个框架呢?
发布于 2020-07-19 15:01:59
framework框架并不取代原来的低级线程API;它使某些类的问题更容易使用。
原始的低级别线程API可以工作:您可以使用安装在系统上的CPU上的所有CPU和所有核心。如果您尝试实际编写多线程应用程序,您将很快意识到这很难。
低级别的线程API可以很好地解决线程在很大程度上是独立的,并且不必在彼此之间共享信息--换句话说,就是令人尴尬的平行问题。然而,许多问题并不是这样的。在底层API中,很难以安全(产生正确的结果并没有死锁等不必要的效果)和高效的(不浪费系统资源)的方式实现复杂的算法。
https://stackoverflow.com/questions/62981559
复制相似问题