我们在线程的使用中,一些暂时不处理的线程要放在其他区域,会使用wait的方法让其进行等待。目的是为了让等待的线程不与其它线程有所冲突,等别的方法调用后,再启用wait方法的线程。下面我们就wait方法的说明、语法、参数、返回值、使用注意、实例带来全面的分析。
1.说明
调用wait()方法后,线程会放到等待池当中,等待池的线程是不会去竞争同步锁。只有调用了notify()或notifyAll()后等待池的线程才会开始去竞争锁
2.语法
1 |
|
3.参数
无
4.返回值
没有返回值。
5.使用注意
(1)必须在synchronized 修饰的同步代码块中调用
(2)会释放cpu资源和释放同步锁(类锁和对象锁)
(3)调用wait()后必须调用notify()或notifyAll()后线程才会从等待池进入到锁池,当我们的线程竞争得到同步锁后就会重新进入绪状态等待cpu资源分配
(4)是Object类的方法
6.实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
以上就是java中wait方法的使用,能够有效解决不同线程之间竞争锁的问题。作为object类的一种方法,在后面我们还会带来更多的内容分享。