Java / Java Multithreading
Explain Guarded Blocks in Java.
Guarded block is a mechanism of coordinating the execution of multiple threads in a multithreaded environment. Guarded block keeps checking for a particular condition to become true and only in that case the actual execution of the thread resumes.
Guarded blocks are of 2 types, synchronized guarded block and non-synchronized guarded block.
In synchronized guarded block, if the condition is false then the synchronized block simply calls the Object.wait() method to release the acquired monitor on that object and leaves the CPU to be used by other thread.
public synchronized void guardedBlockExample() { while(!sharedFlag) { try { wait(); } catch (InterruptedException e) {} } System.out.print("Shared flag is ON. The execution will continue now!"); }
In non-synchronized guarded block, execution is controlled to keep executing a blank loop until the condition becomes true. This approach has an obvious disadvantage of wasting the precious CPU time, which could have been better utilized by some other threads.
public void guardedBlockExample() { while(!sharedFlag) { // empty loop that breaks when condition is true. } System.out.println("Shared Flag is ON. Resuming execution."); }
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
