0%

线程与进程小结

fake it till you make it

进程和线程

进程是一个程序的一次活动,也是操作系统进行资源分配和调度的一个独立单元

进程的创建,执行顺序和调度等都由操作系统来进行管理

线程是在进程的基础上更细粒化的运行单元,与进程不同的地方为线程只拥有少量必须的资源
程序计数器 :将内存的指令序列加载到cpu中,每执行完一条,程序计数器就将存放的指令地址+1
一组寄存器:cpu执行任务是时间片机制,每一个时间片cpu只能执行一个任务,所以会使用cpu的一组寄存器(线程驱动任务)
栈:执行线程里的方法时的函数调用需要使用栈来实现),但可共享线程拥有的所有资源

线程即可由操作系统进行管理也可有用户进行管理,分为:内核态线程实现和用户态线程实现

内核态线程实现

优点:线程有操作系统管理,用户编程简单,线程阻塞时调度容易
缺点:每次线程切换都要深入内核,而用户态切换到内核态时间资源消耗大

用户态线程实现:

优点:线程切换快,所以运行效率高,操作系统无需支持线程
缺点:需要自己管理线程切换,对程序员要求较高,且无法通过时钟中断强制切换,遇到线程阻塞的难以解决

线程状态

运行态 正在占用cpu资源

就绪态 可运行,等待cpu空闲

阻塞态 无法运行,等待某种事件