CIS 35A: Introduction to Java Programming

Home | Green Sheet | Lectures | Assignments | FAQ | Grades

Threads

Threads
Manipulate threads
Put a thread to sleep

A version of the Count Down application that uses sleep() rather than yield()

public class CountDownSleepApp
{
    public static void main(String[] args)
    {
        Thread count1 = new CountDownEven();   // instantiate countdown threads
        Thread count2 = new CountDownOdd();
        count1.start();                        // start the countdown threads
        count2.start();
    }
}

class CountDownEven extends Thread             // this class counts even numbers
{
    public void run()
    {
        for (int i = 10; i > 0; i-= 2)
        {
            System.out.println(this.getName() + " Count " + i);
            try
            {
                Thread.sleep(500);             // sleep for 1/2 second
            }
            catch (InterruptedException e) {}  // ignore any interruptions
        }
    }
}

class CountDownOdd extends Thread               // this class counts odd numbers
{
    public void run()
    {
        for (int i = 9; i > 0; i-= 2)
        {
            System.out.println(this.getName() + " Count " + i);
            try
            {
                Thread.sleep(2000);             // sleep for 2 seconds
            }
            catch (InterruptedException e) {}   // ignore any interruptions
        }
    }
}

Console output from the Count Down application that puts a thread to sleep

Thread-0 Count 10 Thread-1 Count 9 Thread-0 Count 8 Thread-0 Count 6 Thread-0 Count 4 Thread-1 Count 7 Thread-0 Count 2 Thread-1 Count 5 Thread-1 Count 3 Thread-1 Count 1 Press any key to continue . . .
Previous | Put a thread to sleep | Set a thread's priority | Interrupt a thread | Next