Unformatted text preview:

Producer Consumer An example of using Threads Jan 13 2019 The problem One Thread the producer is producing information creating objects while another Thread the consumer is consuming using it We want the consumer to use the objects in the same order as the producer creates them We don t want either Thread to be loafing if there is work for it to do the Thread should be doing it We want to absolutely avoid busy loops Example busy loop while ready the other Thread will reset the ready variable Busy loops will consume all available CPU cycles and seriously slow down everything on the computer The overall structure import java util Vector public class CommandList static Vector list new Vector public static void put String s code on next slide public static String get code on slide after next The put method public static void put String s synchronized list list add s list notify The synchronized list block will take the list object as soon as it becomes available and lock it so no other synchronized list can use it until this block is completed There is nothing special about the list object any object can be locked for synchronization The get method public static String get if list size 0 synchronized list return String list remove 0 else try synchronized list list wait return get catch InterruptedException e return InterruptedException The Consumer class public class Consumer extends Thread public void run while true String s CommandList get System out println Consuming s The test class public class CommandListTester public static void main String args Consumer consumer new Consumer consumer start CommandList put one CommandList put two sleep 2000 CommandList put three CommandList put four private static void sleep int ms try Thread sleep ms catch InterruptedException e Output one two three four The End


View Full Document

Penn CIT 591 - Producer-Consumer

Documents in this Course
Stacks

Stacks

11 pages

Arrays

Arrays

30 pages

Arrays

Arrays

29 pages

Applets

Applets

24 pages

Style

Style

33 pages

JUnit

JUnit

23 pages

Java

Java

32 pages

Access

Access

18 pages

Methods

Methods

29 pages

Arrays

Arrays

32 pages

Methods

Methods

9 pages

Methods

Methods

29 pages

Vectors

Vectors

14 pages

Eclipse

Eclipse

23 pages

Vectors

Vectors

14 pages

Recursion

Recursion

24 pages

Animation

Animation

18 pages

Animation

Animation

18 pages

Static

Static

12 pages

Eclipse

Eclipse

23 pages

JAVA

JAVA

24 pages

Arrays

Arrays

29 pages

Animation

Animation

18 pages

Numbers

Numbers

21 pages

JUnit

JUnit

23 pages

Access

Access

18 pages

Applets

Applets

24 pages

Methods

Methods

30 pages

Buttons

Buttons

20 pages

Java

Java

31 pages

Style

Style

28 pages

Style

Style

28 pages

Load more
Loading Unlocking...
Login

Join to view Producer-Consumer and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Producer-Consumer and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?