多线程Part1
线程
线程是操作系统能够进行运算调度的最小单位,他被包含在进程之中,是进程中的实际运作单位
一个线程就是一个指令流,将指令流中的一条条指令以一定顺序交给CPU执行
线程通信比较简单,例子就是多个线程可以访问同一个共享变量,因为它们共享线程内的内存
理解:应用软件中互相独立,可以同时运作的功能
进程
进程是程序的基本执行实体,程序由指令和数据组成,但指令要运行,数据要读写,必须把指令交给cpu,数据交给内存,运行过程中可能还需要磁盘、网络
进程就是用来加载指令、管理内存、管理IO
进程可以视为程序的一个实例,大部分程序可以同时运行多个实例进程(记事本、画图),也有的只能启动一个(网易云音乐)
在windows中进程是不活动的,只是线程的容器
进程通信比较复杂——同一台计算机的通信叫做IPC
不同计算机的进程通信,需要通过网络,并遵循协议,例如HTTP
多线程应用场景
软件中的耗时操作:拷贝、迁移大文件;加载大量的资源文件
所有的聊天软件
所有的后台服务器
总结
线程上下文切换成本比进程上下文切换低
有了多线程就可以让程序同时做多件事情
作用:提高效率
应用场景:只要你想让多个事情同时运行就需要用到多线程