本帖最后由 py强子 于 2013-8-16 14:08 编辑
1.为什么sleep方法在Thread线程类当中,而wait在Object类中?
因为sleep()是让当前线程休眠相应时间;所以属于Thread类;
wait(),notify();notifyAll();
因为这些方法在操作同步中线程时,都必须要标识它们所操作线程持有的锁,
只有同一个锁上的被等待线程。可以被同一个锁上notify唤醒,
不可以对不同锁中的线程进行唤醒,
也就是说,等待和唤醒必须是同一个锁,
而锁可以是任意对象,所以可以被任意对象调用的方法定义Object类中。
2.在释放锁和执行权的时候,这两个方法有什么不同;
sleep();是根据时间去执行,时间到,该线程就获得了执行权;
而wait();是必须由notify()去唤醒,如果没有notify(),该线程将一直等下去;
该方法是很好的一个内存泄露问题;
|