并发
概念:两个或多个任务(独立的活动)同时发生(进行);一个程序同 时执行多个任务。以往计算机(单核)同一时间只能执行一个任务;由操作系统调度,每秒进行多次“任务切换”。
进程
概念:一个可执行程序运行起来了,就创建了一个进程;运行起来的可执行程序。
线程
- 每个进程,都有一个主线程,且只有一个主线程;主线程生命周期与进程生命周期相同。理解为一条代码的执行通路;
- 除主线程外,我们可以通过自己写代码创建新的线程,其他线程走不同的路,甚至不同的地方放。(同一时刻做不同的事);
- 线程切换:线程不是越多越好,每个线程需要栈空间(1M)需要保存很多中间状态,切换会消耗本该程序运行的时间。
并发的实现
- 多进程实现并发;(进程间的通信:同一电脑:管道、文件、消息队列,共享内存。不同电脑:socket通信技术)。
- 在单独的进程中,创建多个线程实现并发,创建除主线程之外的线程。(轻量级的进程,每个线程有自己独立的运行路径,每一个进程中的所有线程共享地址空间-共享内存;全局变量、指针、引用都可以在线程间传递,多线程开销小于多进程)
总结
和进程相比,线程有如下优点:
a.线程启动速度快,更轻量级;
b.系统资源开销小,执行速度快;
缺点:
使用有一点难度,要小心处理数据的一致性问题。
链接: link.