本机线程与绿色线程
对于许多程序员来说,理解多线程程序一直是大肆宣传。 编写多线程程序时始终要考虑许多方面。
绿色线程与本地线程
程序员可能没有意识到绿色线程与本地线程之间的差异。 这两种机制都是实现“多线程程序”的方式。 通常是实现绿色或本机线程的是编译器/解释器变体。
另一方面,本机线程使用操作系统线程功能来执行多线程程序,绿色线程模拟多线程而不使用操作系统的基础功能。 绿色线程也称为“合作线程”,其中每个进程相互协作以模拟多线程环境。
在多核机器上执行
本机线程的另一个优点是,多个进程将在多核计算机中并行执行。 另一方面,绿色线程始终在单个内核上执行,而VM则提供了多线程的概念。 因此,实际上只有在执行绿色线程的情况下才执行singe。
Craft.io调度
本机线程使用OS调度算法。 现代操作系统支持抢先式调度。 绿线程可以使用任何类型的调度算法。 同步与资源共享
本机线程通常具有复杂的同步和资源共享。 多个进程将需要内核级锁来进行同步。 在绿色线程的情况下,同步非常容易。
翻译自: https://www.javacodegeeks.com/2012/07/native-vs-green-threads.html