进/线/协程--引自阿秀的学习笔记

发布时间 2023-12-12 17:23:32作者: 廿陆
进程、线程与协程区别

1、进程是资源分配的基本单位,运行一个可执行程序会创建一个或多个进程,进程就是运行起来的可执行程序

2、线程是资源调度的基本单位,也是程序执行的基本单位,是轻量级的进程。每个进程中都有唯一的主线程,且只能有一个,主线程和进程是相互依存的关系,主线程结束进程也会结束。

3、线程共享  堆、全局变量、静态变量、指针,引用、文件等,而独自占有栈

一个进程可以创建多少线程,和什么有关?

  • 如果是32 位系统,用户态的虚拟空间只有 3G(3072M),如果创建线程时分配的栈空间是 10M,那么一个进程最多只能创建 300 个左右的线程。
  • 如果是64 位系统,用户态的虚拟空间大到有 128T,理论上不会受虚拟内存大小的限制,而会受系统的参数或性能限制

过多的线程将会导致大量的时间浪费在线程切换上,给程序运行效率带来负面影响,无用线程要及时销毁

外中断和异常有什么区别?

  外中断是指由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。

  异常时由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等

进程线程模型