计算机进程和线程

66 篇文章 0 订阅
15 篇文章 0 订阅
进程和线程是计算机系统中的基本概念,进程包含程序的执行上下文,而线程是进程内的执行实体。线程共享进程的地址空间,允许并行执行以协同完成任务,但也带来了数据同步和资源管理的挑战。线程的使用增加了程序设计的复杂性,但通过适当的同步和设计,可以有效解决这些问题,实现高效的多线程编程。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值