廖大整了五个线程用来获取并打印所有任务,当任务队列为空时,当前获取任务的线程被挂起并释放锁。添加任务的线程就会拿到锁执行添加操作。
s = taskQueue.getTask();
添加完以后又会唤醒所有等待获取任务的线程。也有可能会出现添加任务的线程一直拿到锁,添加完所有任务后,获取任务的五个线程才去抢占锁。反正各种情况都有。
taskQueue.addTask(s);
第一次看这块的时候就感觉很绕,现在感觉好点了^^
Sign in to make a reply
Loading...
廖大整了五个线程用来获取并打印所有任务,当任务队列为空时,当前获取任务的线程被挂起并释放锁。添加任务的线程就会拿到锁执行添加操作。
添加完以后又会唤醒所有等待获取任务的线程。也有可能会出现添加任务的线程一直拿到锁,添加完所有任务后,获取任务的五个线程才去抢占锁。反正各种情况都有。
第一次看这块的时候就感觉很绕,现在感觉好点了^^