我一直在试图找到一个好的定义,并理解线程到底是什么。
似乎我一定遗漏了一些明显的东西,但每次我读到什么是线程,它几乎是一个循环的定义,比如“线程是执行的线程”或“一种划分运行任务的方法”。嗯嗯。嗯?
从我所读到的内容来看,线程并不像进程那样是真正的某物具体的。它实际上只是一个概念。根据我对这种工作方式的理解,处理器为一个程序执行一些命令(被称为执行线程),然后当它需要切换到处理其他一些程序时,它将当前正在执行的程序的状态存储到某个地方(线程本地存储),然后开始执行其他程序的指令。来来回回。因此,线程实际上只是当前正在运行的程序的“执行路径之一”的概念。
不像一个过程,它是一个资源的集合,等等。
作为一个定义的例子,它并没有真正帮助到我…
从维基百科:
“在计算机科学中,线程是执行线程的缩写。线程是程序将自身分割(称为“分裂”)为两个或多个同时(或伪同时)运行的任务的一种方法。不同操作系统的线程和进程各不相同,但一般来说,线程包含在进程中,同一进程中的不同线程共享相同的资源,而同一多任务操作系统中的不同进程则不相同。”
我说的对吗?错了吗?线程到底是什么?
显然,线程也被赋予了自己的调用堆栈,因此这有点像具体的事情。