DOC PREVIEW
Penn CIT 597 - Threads and Multithreading

This preview shows page 1-2-20-21 out of 21 pages.

Save
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Threads and Multithreading Jan 13 2019 Multiprocessing Modern operating systems are multiprocessing Appear to do more than one thing at a time Three general approaches Cooperative multiprocessing Preemptive multiprocessing Really having multiple processors 2 Multithreading Multithreading programs appear to do more than one thing at a time Same ideas as multiprocessing but within a single program More efficient than multiprocessing Java tries to hide the underlying multiprocessing implementation 3 Threads A Thread is a single flow of control When you step through a program you are following a Thread Your previous programs all had one Thread A Thread is an Object you can create and control 4 Sleeping Every program uses at least one Thread Thread sleep int milliseconds try Thread sleep 1000 catch InterruptedException e sleep only works for the current Thread 5 States of a Thread A Thread can be in one of four states Ready all set to run Running actually doing something Waiting or blocked needs something Dead will never do anything again State names vary across textbooks You have some control but the Java scheduler has more 6 State transitions waiting start ready running dead 7 Two ways of creating Threads You can extend the Thread class Or you can implement the Runnable interface class Animation extends Thread Limiting since you can only extend one class class Animation implements Runnable requires public void run I recommend the second for most programs 8 Extending Thread class Animation extends Thread public void run code for this thread Anything else you want in this class Animation anim new Animation A newly created Thread is in the Ready state To start the anim Thread running call anim start start is a request to the scheduler to run the Thread it may not happen right away The Thread should eventually enter the Running state 9 Implementing Runnable class Animation implements Runnable The Runnable interface requires run Animation anim new Animation Thread myThread new Thread anim To start the Thread running call myThread start This is the main method of your new Thread You do not write the start method it s provided by Java As always start is a request to the scheduler to run the Thread it may not happen right away 10 Starting a Thread Every Thread has a start method Do not write or override start You call start to request a Thread to run The scheduler then eventually calls run You must supply public void run This is where you put the code that the Thread is going to run 11 Extending Thread summary class Animation extends Thread public void run while okToRun Animation anim new Animation anim start 12 Implementing Runnable summary class Animation extends Applet implements Runnable public void run while okToRun Animation anim new Animation Thread myThread new Thread anim myThread start 13 Things a Thread can do Thread sleep milliseconds yield Thread me currentThread int myPriority me getPriority me setPriority NORM PRIORITY if otherThread isAlive join otherThread 14 Animation requires two Threads Suppose you set up Buttons and attach Listeners to those buttons then your code goes into a loop doing the animation who s listening Not this code it s busy doing the animation sleep ms doesn t help 15 How to animate Create your buttons and attach listeners in your first original Thread Create a second Thread to run the animation Start the animation The original Thread is free to listen to the buttons However Whenever you have a GUI Java automatically creates a second Thread for you You only have to do this yourself for more complex programs 16 Things a Thread should NOT do The Thread controls its own destiny Deprecated methods myThread stop myThread suspend myThread resume Outside control turned out to be a Bad Idea Don t do this 17 How to control another Thread Don t use the deprecated methods Instead put a request where the other Thread can find it boolean okToRun true animation start public void run while controller okToRun 18 A problem int k 0 Thread 1 k k 1 Thread 2 System out print k What gets printed as the value of k This is a trivial example of what is in general a very difficult problem 19 Tools for a solution You can synchronize an object You can synchronize a method synchronized obj code that uses modifies obj No other code can use or modify this object at the same time synchronized void addOne arg1 arg2 code Only one synchronized method in a class can be used at a time other methods can be used simultaneously Synchronization is a tool not a solution multithreading is in general a very hard problem 20 The End 21


View Full Document

Penn CIT 597 - Threads and Multithreading

Documents in this Course
DOM

DOM

21 pages

More DOM

More DOM

11 pages

Rails

Rails

33 pages

DOM

DOM

21 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

Rake

Rake

12 pages

Ruby

Ruby

58 pages

DOM

DOM

21 pages

Tomcat

Tomcat

16 pages

DOM

DOM

21 pages

Servlets

Servlets

29 pages

Logging

Logging

17 pages

Html

Html

27 pages

DOM

DOM

22 pages

RELAX NG

RELAX NG

30 pages

Servlets

Servlets

28 pages

XHTML

XHTML

13 pages

DOM

DOM

21 pages

DOM

DOM

21 pages

Servlets

Servlets

26 pages

More CSS

More CSS

18 pages

Servlets

Servlets

29 pages

Logging

Logging

17 pages

Load more
Download Threads and Multithreading
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Threads and Multithreading 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 Threads and Multithreading 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?