还是不太理解线程池。
我的理解是:
如果直接用Object或者this之类的来当锁的话,这个锁又同时是惟一的一个监视器,
调用锁的 wait()方法的话,被wait的线程会被存储在线程池中。
再次对这个惟一的监视器调用 notify()的话,就会唤醒随机线程池中一个冻结的线程。
但是如果用java.util.concurrent.locks里的Lock 来创建锁的话,可以用 lock.newCondition()来创建多个分开的监视器。
那么我的问题是:
分别调用几个不同的监视器的 await()的话,被冻结的线程会到哪里去呢?
难道是有每个监视器,就有一个自己对应的线程池吗?
|
|