java之理解线程上下文切换

理解线程上下文切换

线程的执行需要CPU资源,每个CPU同一时刻只能被一个线程使用,为了让用户感觉多个线程是在同时执行的,CPU资源采用了时间片轮转的策略,也就是给每个线程分配一个时间片,线程在时间片内占用CPU执行任务。当线程使用完时间片之后,如果还未结束,就会处于就绪状态并让出CPU给其他线程使用,这就是上下文切换,从当前线程的上下文切换到其它线程。

思考一个问题,让出CPU的线程当下次轮到自己占用CPU时间片的时候如何知道自己之前运行到哪里了?所以在切换线程上下文的时候需要保存当前线程的执行现场,当再次执行时根据保存的执行现场信息恢复执行现场。

线程上下文切换的时机:当前线程的CPU时间片使用完处于就绪状态时;当前线程被其它线程中断的时候。

摘自:《Java并发编程之美》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值