文章比较长,需要一些耐心才能看完
我们用IO操作再来来描述一下同步,异步,阻塞,非阻塞的情况
比较内容 | 进程 | 线程 |
---|---|---|
CPU,内存 | 占用cpu和内存更多 | 占用内存少,cpu切换简单 |
数据共享合和同步 | 数据共享比较复杂,需要通信,同步简单,应为数据是分开的 | 数据共享简单,但同步比较复杂,需要锁操作 |
创建和销毁 | 进程是重量级的,创建和销毁都比较复杂 | 线程是一种轻量级的进程,创建和销毁简单 |
编程和调试 | 复杂 | 简单 |
可靠想 | 进程之间相互独立,不会影响,一个进程挂掉不会影响其它进程 | 一个线程挂掉可能导致整个进程都over |