RUVIDEO
Поделитесь видео 🙏

Multithreading in Java | #51 | ReentrantLock with Condition Interface | newcondition() Method

JAVA & WEB | Session 20 | Multithreading in Java: https://www.youtube.com/playlist?list=PL6pxHmHF3F5L8PcuSz9w2HCXYvuBtQCk3

Watch the complete web series "Java & Web" on YouTube. It's complete, comprehensive and conceptual.
https://www.youtube.com/c/mynameisGYAN

Follow me on:
Facebook: https://www.facebook.com/mnisGYAN/
Linkedin: https://www.linkedin.com/in/gyan-prakash-tiwary-07215420/
Twitter: https://twitter.com/mnisGYAN
Website: http://mynameisgyan.website/
Be the patron of this channel: https://www.patreon.com/mynameisGYAN

#JavaAndWeb #MultithreadingInJava #OCJP #SCJP #javatutorialforbeginners #javainterviewquestionsandanswersforfreshers #javainterviewquestionsandanswers #javaprogramming


Codes: note - Angled Brackets are not allowed in the video description.





Shared.java


class Shared
{
private int i =0;
void add()
{
i=i+1;
}
void sub()
{
i=i-1;
}
int currentValue()
{
return i;
}
}


Check.java


import java.util.concurrent.locks.*;
class Check
{
public static void main(String[] args)
{
ReentrantLock l = new ReentrantLock();
Condition inc = l.newCondition();
Condition dec = l.newCondition();
Shared s = new Shared();
MyThread t1 = new MyThread("t1",l,s,inc,dec);
MyThread t2 = new MyThread("t2",l,s,inc,dec);
t1.start();
t2.start();
}
}


MyThread.java


import java.util.concurrent.*;
import java.util.concurrent.locks.*;
public class MyThread extends Thread
{
ReentrantLock lock = null;
Shared s = null;
Condition inc = null;
Condition dec = null;

public MyThread(String name, ReentrantLock lock, Shared s, Condition inc, Condition dec)
{
super(name);
this.lock=lock;
this.s=s;
this.inc = inc;
this.dec = dec;
}


public void increase() throws Exception
{
lock.lock();
System.out.println(Thread.currentThread().getName()+": Got the lock");
while(s.currentValue() le 99)
{
if(s.currentValue() == 20) //spurious wakeup
{
System.out.println(Thread.currentThread().getName()+" releasing lock without calling unlock() method ");
inc.await();
System.out.println(Thread.currentThread().getName()+" got lock again without calling lock() method ");
}
s.add();
System.out.println(Thread.currentThread().getName()+" increases the value of i to "+s.currentValue());
if(s.currentValue()==20)
{
System.out.println(Thread.currentThread().getName()+" signals other ");
dec.signalAll();
}
}
lock.unlock();
System.out.println(Thread.currentThread().getName()+": Release the lock");
}

public void decrease() throws Exception
{
lock.lock();
System.out.println(Thread.currentThread().getName()+": Got the lock");
while(s.currentValue() le 99)
{
if(s.currentValue() == 0)
{
System.out.println(Thread.currentThread().getName()+" releasing lock without calling unlock() method ");
dec.await();
System.out.println(Thread.currentThread().getName()+" got lock again without calling lock() method ");
}
s.sub();
System.out.println(Thread.currentThread().getName()+" decreases the value of i to "+s.currentValue());
if(s.currentValue()==0)
{
System.out.println(Thread.currentThread().getName()+" signals other "+inc);
inc.signalAll();
}
}
lock.unlock();
System.out.println(Thread.currentThread().getName()+": Release the lock");
}

public void run()
{
try
{
if(Thread.currentThread().getName()=="t1")
{
increase();
}
if(Thread.currentThread().getName()=="t2")
{
decrease();
}
}
catch(Exception e){System.out.println(e);}
}
}

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Multithreading in Java | #51 | ReentrantLock with Condition Interface | newcondition() Method», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.