1. sleep是Thread类的静态方法,可以放置在程序的任意地方,需要指定以毫秒为单位的时间参数.
2. 在此期间,释放cpu执行权,不释放锁.等过了指定的时间,就会自动自动醒来,重新拥有CPU
执行权,和执行资格,但不一定不会被CPU所执行,而是会到就绪等待执行的队列里等待执行.
3. sleep()方法会抛出InterruptedException异常,需要进行异常捕获.
1. wait() wait是Object类的方法,用来线程间的通信,
2. wait只能在同步控制方法或者同步控制的代码块里面使用,
需要用notify()或者notifyAll()方法, 唤醒该进程.
3. 而一旦对象调用了wait()后,这个线程就会释放CUP执行权,同时释放锁.
Synchronized关键字可以和对象的锁结合使用,来实现线程的同步。
wait(),notify(),notifyAll(),用来操作线程定义在了Object类中的原因:
(1) 这些方法存在与同步中。
(2) 使用这些方法时必须要标识所属的同步的锁。
(3) 锁可以是任意对象,所以任意对象调用的方法一定定义Object类中。
|