什么是多线程???
程序运行时产生了多个线程,这就叫做多线程
什么时候用多线程 ?
在一个程序内需要执行多个任务的时候
三个基本概念:
程序···进程···线程
程序:指令集 也就是代码 静态概念
进程:操作系统调度程序 动态概念 相互独立 缺点: 内存浪费,CPU负担
线程:在进程内 多条执行路径 轻量级进程 容易发生并发
进程线程区别:::
根本区别:
进程:资源分配的单位
线程:调度和执行的单位
开销方面:
进程:每个进程都需要独立的代码和数据空间,进程切换会有较大开销
线程:轻量级进程,同类线程共享代码和数据空间,每个线程有独立的
运行栈和程序计数器(PC),线程切换开销小
所处环境:
进程:在操作系统中能同时运行多个任务
线程:在同一个应用程序中有多个顺序流同时执行
分配内存:
进程:系统在运行时会为每个进程分配不同的内存区域
线程:除CPU外,不会为线程分配内存,因为线程所使用的是进程的资源,
只能共享资源
包含关系:
进程:没有线程的进程可以被看做单线程,一个进程如果有多条线程,则执行过程
不是一条线的,而是多条线(线程)共同完成。
线程:是进程的一部分,所以有时也被称为轻量级进程