400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

JDK线程的基本协作机制wait和notify怎么用

这篇文章将为大家详细讲解有关 JDK线程的基本协作机制wait和notify怎么用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册网站空间、营销软件、网站建设、灵宝网站维护、网站推广。

前言

线程间通信主要是通过wait、notify来实现的,使用这种机制实现线程通信是非常效率的,相比而言,不知道的同学针对线程通信可能只会想到轮询的方式,下次可别再去轮询共享变量了,把线程协作机制用起来。

一、线程协作的要素

首先,如果了解显式锁ReentrantLock或显式条件Condition,我们就会知道锁的队列不止有一个等待队列,还有一个等待条件队列,存放等待被唤醒的线程。 对于用声明式编程synchronized关键字来说,底层也是这种原理,对应的针对等待条件队列入队出队方法就是锁资源的wait/notify/notifyAll方法。但光有这种机制只能表示我们线程可以触发其他线程继续执行,前面说了叫等待条件队列,那条件到底是什么勒?一般来说条件就是线程间共享的一个变量,这个变量用于控制线程等待或继续执行。总结来说,notify一般伴随着一个条件共享变量的改变,wait一般伴随着一个条件共享变量的不满足。比如如下代码:

 synchronized (this) {
                while (!condition) {
                    wait();
                }
            }

最开始condition不满足,该线程放弃CPU执行权,进入等待条件队列,然后等到其他线程做了其他事后,条件共享变量被改变,然后该线程被唤醒,然后继续执行。

二、线程协作的场景

线程间的基本协作机制大致分为以下几种:

关于 JDK线程的基本协作机制wait和notify怎么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站栏目:JDK线程的基本协作机制wait和notify怎么用
文章转载:http://mzwzsj.com/article/goppdd.html

其他资讯

让你的专属顾问为你服务