美文网首页
2019-07-30

2019-07-30

作者: 小程有话说 | 来源:发表于2019-07-30 21:47 被阅读0次

    进程 线程

    进程是操作系统提供给我们的一个抽象;我们通过创建进程来使用CPU、读写内存/硬盘、进程IO操作。

    每个进程最少会有一个线程,通过线程来执行命令,进程下可以通过创建多个线程来加速执行速度,进程下的线程共享进程的各种资源,包括内存,IO等。

    线程共享内存带来了方便,但同时共享导致了竞态资源问题;为了解决这个问题,操作系统提供了 Mutex - Mutual Exclusion 互斥锁,降低性能解决共享带来的问题。

    线程 协程

    当我们创建线程的时候需要 系统调用,内核会创建一个新的线程,这个线程通过操作系统来进行调度。

    协程,又叫做用户态线程,顾名思义,是在用户空间创建的线程,golang取消线程,使用协程来替代。

    协程相比线程,优点在于占用内存空间小,可以无限制创建;因为是用户进程自己调度,所以减少了切换带来的性能损耗。

    内核 - 任务

    我们眼中的进程、线程在内核中,都是以任务存在的。
    其包含:

    1. 任务ID
    2. 信号
    3. 任务状态
    4. 进程调度
    5. 关系
    6. 权限
    7. 运行统计
    8. 内存管理
    9. 文件与文件系统
    10. 内核栈

    相关文章

      网友评论

          本文标题:2019-07-30

          本文链接:https://www.haomeiwen.com/subject/wqiorctx.html