我正在做一个关于并发性的演讲,它将涉及多线程、多处理和绿色线程。我想给出一个简单的现实世界的类比单线程程序,多线程,多线程和绿色线程。这就是我想出的类比:
我真的不喜欢绿色线程的类比,因为(1)被搁置的人是“阻塞”而不是做有用的工作;(2)这与其他银行出纳员的类比是不一致的。
有人有任何简单的类比可以帮助解释绿色的线索吗?
发布于 2019-03-03 08:19:46
将绿色线程与其他三个线程放在同一个列表中是没有意义的,因为它们生活在不同的抽象级别上。多线程和多处理是处理并发实体之间数据共享的两种不同模型(共享内存与具有显式通信的单独内存)。
另一方面,绿色线程是实现多线程的一种方式。实际上,这是很多可能的方法之一。
如果多线程是在CPU内部实现的,我们称之为芯片多线程(CMT),如果它是粗粒度的(例如在T系列系列SPARC CPU上),而同时多线程(SMT)如果它是细粒度的(例如在Intel和Pentium4上,在英特尔的市场名为"HyperThreading技术“)。如果它是在操作系统内部实现的,我们称之为内核线程。如果它是在更高层次上实现的,我们称之为绿色线程。但这都是同一个想法的不同实现。
发布于 2019-03-03 08:09:03
绿色线程是银行出纳员提交交易,然后告诉客户回到线的末尾,因为另一层的人需要批准一个特定的部分,然后他们才能继续。
这可能会更好的工作,如果它涉及的文书工作,既可以由“出纳员”(用户线程和进程)或“客户”(绿色线程)。除非你承担一个非常繁忙的贷款部门,否则银行业务就不能很好地运作。
https://softwareengineering.stackexchange.com/questions/387944
复制相似问题