什么是线程(什么是线程)?

lee*_*ela 7 multithreading

我总是对线程概念感到困惑.到目前为止,我还没有机会在真实的环境中使用它们.如果有人可以为我解释线程会很有帮助.

Spe*_*nce 7

没有人花时间向我解释的是一个过程和一个线程之间的区别.一旦你理解了,线程适合的地方很有意义.

操作系统提供要使用的进程内存.启动时的进程通常在其中运行一个"线程".

该线程是操作系统安排在CPU上运行的线程,并为其提供一个地址以开始执行指令.

有些比我聪明的人认为在大多数操作系统中制作流程比创建执行线程要昂贵得多.此外,同一进程中的两个线程可以访问进程内存而无需使用操作系统调用和/或共享内存来执行此操作,这意味着虽然您现在需要同步线程内存访问,但您可以在更少的工作中完成更多工作时间.

因此,线程是一个需要理解的重要概念,它的主要用途是提高具有可被利用的并发性的程序的性能,第一个主要用途(编辑:这可能不是"第一次使用")运行GUI一个线程上的应用程序,并在另一个线程上执行处理,这是现代用户界面设计的基石.


ang*_*son 7

一个简单的解释是,你有一份工作要做,你就可以找一个人完成这项工作.

这个人类似于计算机中的线程.

一个人一次可以做一件事,所以为了完成这项工作,他会完成工作任务,一次完成一项任务,每次完成一项任务.

为了加快工作,你可以让更多的人从事同样的工作.例如,假设你需要画一座房子.你雇了4个人来做这件事.

这4个人可能类似于4个线程,因为他们使用相同的资源(同一个房子,相同的油漆桶),他们可以分工.

一个过程类似于绘制那个房子的工作.

当涉及到没有足够CPU核心同时运行所有线程的机器时,这个简单的解释有点崩溃,但我将在这里忽略它.