先举一个例子:
当我们使用VsCode时,如果开启了自动保存功能。那么我们在写代码时,VsCode需要做两件事情,第一件事情是,监听我打字输入的状态;第二件事情是,每5分钟保存一次代码。
如果这个进程中只有一个线程的话,那么当VsCode在对代码进行保存时,它就不能监听我打字输入的状态了,我的任何输入都会没有响应,这种用户体验是十分不好的。
所以我们需要使用多线程,每个线程处理自己那一部分任务,而不用关心会和其他线程的冲突。线程1用于响应键盘,线程2用于自动保存。
进程
进程是并发执行程序在执行过程中资源分配的最小单位
线程
线程是程序执行的最小单位
线程与进程的区别
- 一个进程中可以有多个线程,线程依赖于进程
- 每个进程都拥有独立的内存地址空间,而线程共享进程的这个内存地址空间
多线程的好处:
- 线程更轻量级,线程创建和销毁的代价更小
- 线程提高了性能。虽然线程从宏观角度来说是并行的,但其实从微观角度来说,还是串行的,从这一个角度来看,并没有提高性能。但是,当某些线程涉及到等待资源的时候(比如等待输入),多线程允许进程中的其他线程继续执行,而不是整个进程被阻塞,因此,提高了cpu的利用率。
- 在多cpu或者多核的情况下,线程宏观,微观都是并行的。
网友评论