Multithreading 线程和进程?

Multithreading 线程和进程?,multithreading,Multithreading,在计算机科学中,执行线程是操作系统可以调度的最小处理单元。 这是非常抽象的 线程的真实世界/有形/物理解释是什么 我如何判断应用程序(通过查看其代码)是单线程还是多线程 使应用程序多线程化有什么好处吗?在哪些情况下可以这样做 还有类似于多进程应用程序的东西吗 技术是否是一个限制因素,决定它是否可以成为多线程操作系统?它只是设计的选择吗?e、 是否可以在flex中创建多线程应用程序 如果有人能给我举个例子或类比来解释这些事情,那将非常有帮助。 线程的真实世界/有形/物理解释是什么 将线程看作一个独

在计算机科学中,执行线程是操作系统可以调度的最小处理单元。 这是非常抽象的

  • 线程的真实世界/有形/物理解释是什么

  • 我如何判断应用程序(通过查看其代码)是单线程还是多线程

  • 使应用程序多线程化有什么好处吗?在哪些情况下可以这样做

  • 还有类似于多进程应用程序的东西吗

  • 技术是否是一个限制因素,决定它是否可以成为多线程操作系统?它只是设计的选择吗?e、 是否可以在flex中创建多线程应用程序

  • 如果有人能给我举个例子或类比来解释这些事情,那将非常有帮助。

    • 线程的真实世界/有形/物理解释是什么

      将线程看作一个独立的执行单元,可以在给定的CPU上并发执行(同时执行)。一个很好的类比是多辆车在同一条路上独立行驶。这里的“汽车”是一根线,而道路就是CPU。所有这些车的功能都是一样的:“开车兜风”,但关键是人们不应该排队等一辆车=>他们可以在不同的车里同时开车(线程)。 然而,从技术上讲,根据CPU内核的数量和总体硬件/操作系统架构,会有一些
      上下文切换
      ,CPU会让它看起来是同时发生的,但实际上它会从一个线程切换到另一个线程

    • 我如何判断应用程序(通过查看其代码)是单线程还是多线程

      这取决于几件事,代码所用的语言,您对该语言的理解,代码试图实现的目标,等等。。通常你可以知道,但我不相信这能解决任何问题。如果您已经可以访问代码,只需询问开发人员就可以了,或者,如果它是一个开源产品,可以阅读文档,在用户论坛上发布来了解它

    • 使应用程序多线程化有什么好处吗?在哪些情况下可以这样做

      是的,想想上面的汽车例子。好处=
      同时
      解耦执行
      。例如,您需要计算已知宇宙中有多少次启动。你可以用一个进程遍历所有的恒星并计算它们,或者你可以“生成”多个线程,并给每个线程一个星系来求解:“线程1计算银河系中的所有恒星,线程2计算仙女座星系中的所有开始数,等等”

    • 还有类似于多进程应用程序的东西吗

      这是一个术语问题,但最清晰的答案是肯定的。例如,在Erlang中,VM能够非常快地启动许多非常轻量级的进程,其中每个进程都做自己的事情。例如,在Unix服务器上,如果执行“ps-aux/ps-ef”,您将看到多个“进程”执行,其中每个进程实际上可能有许多线程在执行其任务

    • 技术是否是一个限制因素,决定它是否可以成为多线程操作系统?它只是设计的选择吗?e、 是否可以在flex中创建多线程应用程序

      2线程应用程序已经是多线程的。你的笔记本电脑/个人电脑上很可能已经有2个或更多的内核,所以技术总是鼓励你使用这些内核,而不是限制你。话虽如此,问题和需求应该推动决策。不是技术或工具。但是,如果您确实决定编写一个多线程应用程序,请确保您了解所有的问题和解决方案。到目前为止,我用来解决并发性的最好的语言是Erlang,因为并发性是内置的。然而,其他语言,如Scala、Java、C#,以及大多数函数式语言,如果共享状态不是问题,也将是一个不错的选择


    这看起来像是家庭作业……非常感谢。。。这就是我要找的。不知道为什么会让主持人不高兴…@user503510当然,非常欢迎。人是不同的,被赋予权力的人通常都是很有判断力的,这使得对世界的看法更加狭隘。别介意=>你的问题是合法的