计算机进程和线程
Posted Zhou2021
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机进程和线程相关的知识,希望对你有一定的参考价值。
计算机系统中,进程和线程是非常重要的概念。
一个进程就是一个正在执行的程序,包括pc、寄存器和变量的当前值,多个进程共享着物理内存、磁盘、打印机和其他资源。一般来说,每个进程有一个地址空间和一个在CPU上被调度执行的实体——线程。在同一个进程的环境中,允许并行运行彼此之间有独立性的多个线程,多个线程共享着进程的地址空间、打开文件集、子进程、报警及相关信号等其他资源。
进程中的不同线程并不像不同进程之间那样存在很大的独立性。所有的线程都有完全一样的地址空间,共享着相同的全局变量。由于各个线程都可以访问进程地址空间中的每一个内存地址,所以一个线程可以读、写、或完全清除另一个线程的堆栈。线程之间是没有保护的,原因是:
- 不可能,
- 没有必要。
这与不同进程是有差别的:不同进程会来自不同的用户,她们彼此之间可能有敌意;而创建多个线程的目的是为了她们之间的合作而不是彼此的争斗。对于没有关系的线程而言,单进程单线程结构会工作的很好,而对于实际完成一个作业的多进程,并彼此积极密切合作的情况而言,单进程多线程是合适和必要的。
由于线程不能像进程一样,被时钟中断强制分时处理,所以,线程的“高尚”行为显得非常重要:一个线程随着时间的进展要自动交出CPU,以便让其她线程有机会运行。因为线程试图实现的是,共享一组资源的多个线程的执行能力,以便她们可以为完成同一方向的某一任务而共同工作。
通常而言,线程是有益的,但是线程也在程序设计模型中引入了某种程度的复杂性和烦恼度。如,父进程和子进程是否需要拥有同样的线程?线程共享数据问题:一个线程已关闭文件,而另一个线程却要读写文件。不过这些问题通过努力是可以解决的,总之,要使多线程的程序正确有效地工作,就要仔细思考和设计。
以上是对《现代操作系统》中线程概念的简述,也是对人生的概述。共享资源、不可能、没必要的地址完全保护、高尚行为、为同一目标而共同工作、有益但实现时的复杂性和烦恼度等等 == 各位兄弟姐妹正在经历的。。。不过请放心,线程问题通过努力是可以解决的,兄弟姐妹的问题通过努力也是可以解决的。
以上是关于计算机进程和线程的主要内容,如果未能解决你的问题,请参考以下文章