(一)基本概念
进程和线程的概念
进程:一个执行中的程序,每一个进程都有自己独立的一块内存空间、一组系统资源。
线程:一个执行的程序内部,可以包含多个顺序执行流,每个执行流称为一个线程。
线程与进程的关系
进程:享有独立的代码和数据空间,切换开销大。
线程:同一类线程共享代码和数据空间,线程切换的开销小。
多进程:在操作系统中,能同时运行多个任务程序。
多线程:在同一应用程序中,有多个顺序流同时执行。
并发和并行的区别
并行:多个CPU处理多个进程
并发:一个CPU,坐几个进程(单核CPU,假的多线程)
多线程的作用
提高用户体验,使程序的响应速度更快
适合于开发服务程序(如聊天服务等)
适合于开发有多种交互接口的程序(如聊天程序的客户端,网络下载工具)
减轻编写交互频繁、涉及面多的程序的困难(如监听网络端口)
程序的吞吐量会得到改善(同时监听多种设备,如网络端口、串口、并口以及其他外设)
可以分别设置各个任务的优先级以优化性能。
何时使用多线程
程序需要同时执行两个或多个任务
程序需要实现一些需要等待的任务时:用户输入、文件读写操作、网络操作、搜索等
需要一些后台运动的程序