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