fake it till you make it
进程和线程
进程是一个程序的一次活动,也是操作系统进行资源分配和调度的一个独立单元
进程的创建,执行顺序和调度等都由操作系统来进行管理
线程是在进程的基础上更细粒化的运行单元,与进程不同的地方为线程只拥有少量必须的资源
程序计数器 :将内存的指令序列加载到cpu中,每执行完一条,程序计数器就将存放的指令地址+1
一组寄存器:cpu执行任务是时间片机制,每一个时间片cpu只能执行一个任务,所以会使用cpu的一组寄存器(线程驱动任务)
栈:执行线程里的方法时的函数调用需要使用栈来实现),但可共享线程拥有的所有资源
线程即可由操作系统进行管理也可有用户进行管理,分为:内核态线程实现和用户态线程实现
内核态线程实现
优点:线程有操作系统管理,用户编程简单,线程阻塞时调度容易
缺点:每次线程切换都要深入内核,而用户态切换到内核态时间资源消耗大
用户态线程实现:
优点:线程切换快,所以运行效率高,操作系统无需支持线程
缺点:需要自己管理线程切换,对程序员要求较高,且无法通过时钟中断强制切换,遇到线程阻塞的难以解决
线程状态
运行态 正在占用cpu资源
就绪态 可运行,等待cpu空闲
阻塞态 无法运行,等待某种事件