Java / Java Multithreading
Consumer Producer problem.
Posted on Apr 1, 2016 by Senthil Kumar.
package com.tutorials.threading; public class ConsumerProducerProblem { int value = 0; volatile boolean hasChanged = false; public void produce(int value) throws InterruptedException { while (hasChanged == true) { } System.out.println("Value set:" + value); this.value = value; hasChanged = true; } public void consume() throws InterruptedException { while (hasChanged == false) { } System.out.println(Thread.currentThread().getName() + " consumed value:" + value); hasChanged = false; } public static void main(String... s) { final ConsumerProducerProblem myObj = new ConsumerProducerProblem(); new Thread() { @Override public void run() { for (int i = 0; i <= 30; i++) { try { myObj.produce(i); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); new Thread("first consumer") { @Override public void run() { for (int i = 0; i <= 30; i++) { try { myObj.consume(); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); } }
More Related questions...