Difference between yield and wait method in Java
Yield
vs wait in Java
Yield
and wait method in Java, though both are related to Thread, are
completely different to each other. Main
difference between wait and yield
in Java
is
that wait is used for flow
control
and inter thread communication while yield is used just to
relinquishCPU
to offer an opportunity to another thread for running. In this Java
tutorial we will what are differences between wait
and
yieldmethod
in Java and when to use wait()
and
yield().
What is important for a Java programmer is not only understand
difference between wait() and yield() method but also know
implications using yield method. If your program is depends upon
yield method for performance or correctness than its most likely not
work perfectly on all
platforms
because of platform dependent nature of yield method which we will
see in this Java article along with wait
vs yield
comparison.
Difference between wait and yield in Java
Here
is a list of differences between Yield and wait method in Java, good
to remember for Java interviews :
1) First difference between wait vs yield method is that, wait() is declared in java.lang.Object class while Yield is declared onjava.lang.Thread class.
1) First difference between wait vs yield method is that, wait() is declared in java.lang.Object class while Yield is declared onjava.lang.Thread class.
2)
Second difference
between wait and yield
in Java
is that wait is overloaded method and has two version of wait,
normal and timed wait while yield is not overloaded.
3)
Third difference between wait and yield is that wait is an instance
method while yield is an static
method and work on current
thread.
4)
Another difference
on wait
and
yield
is
that When a Thread
call
wait it releases the monitor.
5)
Fifth difference between yield vs wait which is quite important as
well is that wait() method
must be called from either synchronized block or synchronized
method, There is no such requirement for Yield method.
6)
Another Java best practice
which differentiate wait and yield is that, its advised to call wait
method inside loop but yield is better to be called outside of loop.
That's
all on difference
between wait and yield method in Java.
In summary wait and yield are completely different and there for
different purpose. Use wait
for
inter thread communication while yield is not just reliable enough
even for the mentioned task. preferThread.sleep(1)
instead
of yield.
0 comments:
Post a Comment