一个独立的资源加载线程,接收主线程的资源加载请求的思路

资源加载线程用一个请求队列维护所有的资源加载请求,如果没有资源加载请求进来就等待。
该队列是个共享资源,所以需要一个锁来保护,还需要一个条件变量,当请求队列为空的时候,资源加载
线程就需要在这个条件上等待,另外当请求队列为空的时候,而此时正好来了一个新的资源加载请求,
需要通知在这个条件变量上等待的线程,唤醒它,说有一个新的资源加载请求需要你来执行。
 
如果资源加载线程没有被阻塞,比如因为资源请求队列不为空,那么它就从请求队列中取出一个资源加载请求执行
当有新的资源加载请求进来的时候,同样对资源请求队列加锁,并将该请求push入这个队列中,如果在此之前队列为空
,代表可能有些资源加载线程被阻塞了,此时需要唤醒在该条件变量上阻塞的资源加载线程。
 
当要终止这个资源加载线程的时候,要唤醒所有在条件对象等待的线程,给它们最后的机会执行机会,等待它们都执行完成之后再销毁这个线程实例
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值