进程的基本概念
进程是操作系统级别的概念,操作系统给程序分配的一定资源
线程的概念
线程是cpu调用的基本单位,每一个线程执行某一个进程代码的基本片段
特点
- 进程是线程的容器,线程利用进程中的一些资源,完成预期指令,实现预期效果
- 进程是操作系统级别,线程是cpu级别
- 进程与进程之间是相互独立的,线程共享一个进程内的资源
- 进程创建没有线程快
多线程的概念
是指在单个进程中运行多个线程
多线程下存在的缺点
- 线程数量特别多,频繁的上下文切换会消耗资源
- 具体业务中也不是很好的拆分
- 线程安全问题,例如死锁
串行、并行、并发
- 串行是一个接着一个
- 并行是大家一起上
- 并发是指在一个进程中频繁的线程切换,提高线程的使用率
需要注意的是多核cpu中存在并行,而单核cpu中只有并发
同步、异步、阻塞、非阻塞
- 首先当发生I/O操作的时候,存在两方的参与,分别是调用方和被调用方。
- 阻塞与非阻塞是描述调用方的概念。根据调用方是否要一直等待调用的返回结果,如果是要那就是阻塞,如果不要那就是非阻塞
- 同步与异步,是指被调用方的概念,如果被调用方在接到了关于自己的调用指令,立即做出相应并返回结果信息那就是同步,否则那就是异步。
- 所以四者之间是描述对象的不同,之间没有必然的关系
使用一个例子说明:
舒一笑去用锅烧开水,水开后,不会主动通知你,但是水看之后就能直接看到,所以我需要在一旁一直等待水烧开,对于水来说那是同步的,我作为调用者那就是阻塞的,————————————————————————————同步阻塞
舒一笑去用锅烧开水,水开后,不会主动通知我,但是在烧水的时候我再写这篇博客,是不是去看看水开了吗,对于水而言还是同步的,而我作为调用者没有一直等待,那就是非阻塞————————————————————————同步飞阻塞
舒一笑用美的水壶烧水,水开前一直等着,对于水而言方式变了,开了就能跳掉,而我还是一直等————————异步阻塞
舒一笑用美的水壶烧水,水开前我去健身了,对于水而言方式变了,开了就能跳掉,而我做我自己的事情——————————异步非阻塞,感觉这个异步就是用了一个更加直观的方式去专门了效果不好的方式。