SlideShare a Scribd company logo
Java2

An Introduction to Threads
Objectives

   Compare Multitasking and Multithreading
   Define a thread
   Discuss Benefits of multithreading
   Explain how to create threads
   Describe Thread states
   Discuss Thread priorities
   Discuss Daemon thread
                        eACCP 2002/Sem 1/ JPL/
                        Session 6/ 2 of 26
Multitasking Vs Multithreading

   Multitasking is the ability to run one or more
    programs concurrently
   Operating system controls the way in which
    these programs run by scheduling them
   Time between switching of programs is
    minute
   Multithreading is the ability to execute
    different parts of a program called threads,
    simultaneously          eACCP 2002/Sem 1/ JPL/
                          Session 6/ 3 of 26
Thread
   Smallest unit of executable code that
    performs a task
   An application can be divided into multiple
    tasks and each task can be assigned to a
    thread
   Many threads executing simultaneously is
    termed as Multithreading
   Although it may appear that the processes
    are running concurrently, it is not so 1/ JPL/
                         eACCP 2002/Sem
                           Session 6/ 4 of 26
Benefits of multithreading

   Multithreading requires less overhead than
    multitasking
       In multitasking, processes run in their own
        different address space
       Tasks involved in multithreading can share the
        same address space
   Inter-process calling involves more overhead
    than inter-thread communication
                              eACCP 2002/Sem 1/ JPL/
                              Session 6/ 5 of 26
Applications of thread

   Playing sound and displaying images
    simultaneously

   Displaying multiple images on the screen

   Displaying scrolling text patterns or images
    on the screen
                          eACCP 2002/Sem 1/ JPL/
                          Session 6/ 6 of 26
Creating threads (1)

   When Java programs execute, there is
    always one thread running and that is the
    main thread
       It is this thread from which child threads are
        created
       Program is terminated when main thread stops
        execution
       Main thread can be controlled through ‘Thread’
        objects
                                eACCP 2002/Sem 1/ JPL/
                                Session 6/ 7 of 26
Creating threads (2)
   Thread objects can be created in two ways:
       Declare a class that is a sub-class of the class
        Thread defined in java.lang package
               class mythread extends Thread
       Declare a class that implements the Runnable
        interface
               class mythread implements Runnable

   While using applets, Thread class cannot be
    extended. Therefore one has to implement the
    Runnable interface     eACCP 2002/Sem 1/ JPL/
                                   Session 6/ 8 of 26
Creating threads (3)

   To initiate a new thread, we use the start()
    method
       Mythread t = new Mythread();
       t.start();

   When start() method is invoked, a new thread
    of control is created
   It then calls the run() method
                               eACCP 2002/Sem 1/ JPL/
                               Session 6/ 9 of 26
Creating threads (4)
               Example 1 –
                Creating a thread by
                extending the Thread
                class


                      Output




         eACCP 2002/Sem 1/ JPL/
         Session 6/ 10 of 26
Creating threads (5)
               Example2 –
                Creating a thread by
                implementing the
                Runnable interface


                       Output




         eACCP 2002/Sem 1/ JPL/
         Session 6/ 11 of 26
Thread states (1)

   Born – a newly created thread is in a born
    state

   Ready – after a thread is created, it is in its
    ready state waiting for start() method to be
    called

                           eACCP 2002/Sem 1/ JPL/
                           Session 6/ 12 of 26
Thread states (2)

   Running – thread enters the running state
    when it starts executing

   Sleeping – execution of a thread can be
    halted temporarily by using sleep() method.
    The thread becomes ready after sleep time
    expires
                         eACCP 2002/Sem 1/ JPL/
                         Session 6/ 13 of 26
Thread states (3)

   Waiting – thread is in waiting state if wait()
    method has been invoked

   Blocked – when the thread waits for an
    Input/Output operation

   Dead – after the run() method has finished or
    the threads stop() method is2002/Sem 1/ JPL/
                          eACCP called
                           Session 6/ 14 of 26
Different thread states
             New Thread
              (BORN)



              READY



  SLEEPING                SUSPENDED


             RUNNING

WAITING                       BLOCKED

               DEADeACCP    2002/Sem 1/ JPL/
                    Session 6/ 15 of 26
Some methods
                of thread class (1)

   isAlive() – returns true if the thread is alive

   getName() – returns the name of the thread

   start() – used to start a thread by calling the
    method run()
                               eACCP 2002/Sem 1/ JPL/
                               Session 6/ 16 of 26
Some methods
           of thread class (2)
   resume() – to resume the execution of a
    suspended thread

   yield() – causes the currently executing
    thread to temporarily pause and allow other
    threads to execute

   setName(String name) – sets the name of
    the thread to the name that is passed as
                         eACCP 2002/Sem 1/ JPL/
    argument             Session 6/ 17 of 26
Some methods
            of thread class (3)
   join() – waits for the thread to die

   isDaemon() – checks if the thread is a
    Daemon thread

   activeCount() – returns the number of active
    threads

   sleep() – used to suspend a thread for a
    certain period of time eACCP 2002/Sem 1/ JPL/
                           Session 6/ 18 of 26
Conditions preventing
            thread execution

   Thread is:
       Not of highest priority
       Put to sleep using sleep() method
       Suspended using suspend() method
       Thread is waiting because wait() method was
        called
       Explicitly yielded using yield() method
       Blocked for file I/O
                                eACCP 2002/Sem 1/ JPL/
                                Session 6/ 19 of 26
Managing threads (1)
   Priorities for carrying out activities changes at
    times
       eg :Planned to visit museum in the afternoon but
        due to toothache, had to go to doctor
   Similarly while programming, we may have to
    run a thread of higher importance without
    stopping or suspending the current running
    thread
   Thread priorities play an important role in
    such a situation       eACCP 2002/Sem 1/ JPL/
                              Session 6/ 20 of 26
Managing threads (2)

   Thread priorities in Java are constants
    defined in the Thread class
          NORM_PRIORITY         – value is
          MAX_PRIORITY          – value is
          MIN_PRIORITY          – value is
   The default priority is NORM_PRIORITY
   Two methods used to change priority:
       
           setPriority() - changes the thread’s current priority
       
           getPriority() - returns the thread’s priority
                                  eACCP 2002/Sem 1/ JPL/
                                  Session 6/ 21 of 26
Daemon threads (1)
   Two types of threads in Java:
       User threads – created by the user
       Daemon threads – threads that work in the
        background providing service to other threads
         
             e.g. – the garbage collector thread
   When user thread exits, JVM checks to find
    out if any other thread is running
   If the only executing threads are Daemon
    threads, it exits      eACCP 2002/Sem 1/ JPL/
                                   Session 6/ 22 of 26
Daemon threads (2)

   We can set a thread to be a Daemon if we do
    not want the main program to wait until a
    thread ends
   Thread class has two methods to deal with
    Daemon threads:
       public void setDaemon(boolean value) : sets a
        thread to be a daemon thread
       public void isDaemon() : checks if the given thread
        is a daemon thread eACCP 2002/Sem 1/ JPL/
                             Session 6/ 23 of 26
Daemon threads (3)
An example




                        Output




             eACCP 2002/Sem 1/ JPL/
             Session 6/ 24 of 26
Session summary (1)

   When Java programs are executed, there is
    always one thread that is running and that is
    the main thread
   Threads can be used in two ways:
       Declare the class to be a sub-class of the Thread
        class
       Declare a class that implements the Runnable
        interface
                               eACCP 2002/Sem 1/ JPL/
                               Session 6/ 25 of 26
Session summary (2)

   Each thread in a Java program is assigned a
    priority
   The default priority of a thread that is created
    is 5
   The methods Thread.suspend(),
    Thread.resume() and Thread.stop() have
    been deprecated since Java2
   The threads providing service to other
    threads are referred to as daemon threads
                            eACCP 2002/Sem 1/ JPL/
                           Session 6/ 26 of 26

More Related Content

What's hot (19)

PPTX
Multithreading in java
junnubabu
 
PPTX
Multi-threaded Programming in JAVA
Vikram Kalyani
 
PPTX
Advanced Introduction to Java Multi-Threading - Full (chok)
choksheak
 
PPTX
Concurrency in java
Abhra Basak
 
PPT
Java And Multithreading
Shraddha
 
PPT
java threads
Waheed Warraich
 
PDF
Tools for analysis and evaluation of CPU Performance
Mourad Bouache
 
PPT
Java Multithreading
Rajkattamuri
 
PPT
Chap2 2 1
Hemo Chella
 
PPT
Chapter 02
Geonyzl Alviola
 
PDF
Java threads
Prabhakaran V M
 
PPT
Java Threads and Concurrency
Sunil OS
 
PPT
Developing Multithreaded Applications
Bharat17485
 
PPT
Thread model in java
AmbigaMurugesan
 
PPTX
advanced java ppt
PreetiDixit22
 
PDF
Java threading
Chinh Ngo Nguyen
 
PPTX
Threading concepts
Raheemaparveen
 
PDF
Programming with Threads in Java
koji lin
 
PPTX
Java Thread & Multithreading
jehan1987
 
Multithreading in java
junnubabu
 
Multi-threaded Programming in JAVA
Vikram Kalyani
 
Advanced Introduction to Java Multi-Threading - Full (chok)
choksheak
 
Concurrency in java
Abhra Basak
 
Java And Multithreading
Shraddha
 
java threads
Waheed Warraich
 
Tools for analysis and evaluation of CPU Performance
Mourad Bouache
 
Java Multithreading
Rajkattamuri
 
Chap2 2 1
Hemo Chella
 
Chapter 02
Geonyzl Alviola
 
Java threads
Prabhakaran V M
 
Java Threads and Concurrency
Sunil OS
 
Developing Multithreaded Applications
Bharat17485
 
Thread model in java
AmbigaMurugesan
 
advanced java ppt
PreetiDixit22
 
Java threading
Chinh Ngo Nguyen
 
Threading concepts
Raheemaparveen
 
Programming with Threads in Java
koji lin
 
Java Thread & Multithreading
jehan1987
 

Viewers also liked (16)

PPTX
Windows file system
sumitjain2013
 
PPTX
Disaster Mangement process with Uttarakhand Case Study
Avinash Chavan
 
PDF
Operating Systems 1 (10/12) - Scheduling
Peter Tröger
 
PPT
Window scheduling algorithm
Binal Parekh
 
PPT
Community Disaster Preparedness
Central Texas VOAD
 
PPTX
Windows process scheduling presentation
Talha Shaikh
 
PPTX
Fault tolerance in distributed systems
sumitjain2013
 
PPT
Principles of Emergency Management slides
João Canas
 
PPTX
Windows process-scheduling
Talha Shaikh
 
PPT
The Windows Scheduler
Peter Shirley-Quirk
 
PPTX
Disaster preparedness
Lomer Oanilacam
 
PPTX
Disaster management
vishwajeet bajwan
 
PPTX
Natural disaster powerpoint
Nbort
 
PPTX
EDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLE
Sabeel Irshad
 
PPTX
Natural disasters
avy123
 
PPT
Disaster management ppt
Aniket Pingale
 
Windows file system
sumitjain2013
 
Disaster Mangement process with Uttarakhand Case Study
Avinash Chavan
 
Operating Systems 1 (10/12) - Scheduling
Peter Tröger
 
Window scheduling algorithm
Binal Parekh
 
Community Disaster Preparedness
Central Texas VOAD
 
Windows process scheduling presentation
Talha Shaikh
 
Fault tolerance in distributed systems
sumitjain2013
 
Principles of Emergency Management slides
João Canas
 
Windows process-scheduling
Talha Shaikh
 
The Windows Scheduler
Peter Shirley-Quirk
 
Disaster preparedness
Lomer Oanilacam
 
Disaster management
vishwajeet bajwan
 
Natural disaster powerpoint
Nbort
 
EDLC-EMBEDDED PRODUCT DEVELOPMENT LIFE CYCLE
Sabeel Irshad
 
Natural disasters
avy123
 
Disaster management ppt
Aniket Pingale
 
Ad

Similar to Chapter6 threads (20)

PPT
ThreadProperties
myrajendra
 
PDF
JAVA 3.2.pdfhdfkjhdfvbjdbjfhjdfhdjhfjdfdjfhdjhjd
KusumitaSahoo1
 
PPT
Java multi threading
Raja Sekhar
 
PDF
javathreads
Arjun Shanka
 
PPTX
Java class 6
Edureka!
 
PPT
Threadlifecycle.36
myrajendra
 
PPTX
OOPS object oriented programming UNIT-4.pptx
Arulmozhivarman8
 
PPTX
MULTI THREADING IN JAVA
VINOTH R
 
PDF
Unit-3 MULTITHREADING-2.pdf
GouthamSoma1
 
PPTX
Multithreading in java
Monika Mishra
 
PPTX
Multithreading
sagsharma
 
PPTX
multithreading,thread and processinjava-210302183809.pptx
ArunPatrick2
 
PPTX
unit3 Exception Handling multithreadingppt.pptx
ArunPatrick2
 
PPTX
unit3multithreadingppt-copy-180122162204.pptx
ArunPatrick2
 
PPTX
econtent thread in java.pptx
ramyan49
 
PDF
CSE 3146 M1- MULTI THREADING USING JAVA .pdf
universitypresidency
 
PDF
Java Threads: Lightweight Processes
Isuru Perera
 
PPTX
Multithreading.pptx
PragatiSutar4
 
PPTX
Object-Oriented-Prog_MultiThreading.pptx
NasreenTaj20
 
PPTX
Multithreading programming in java
Elizabeth alexander
 
ThreadProperties
myrajendra
 
JAVA 3.2.pdfhdfkjhdfvbjdbjfhjdfhdjhfjdfdjfhdjhjd
KusumitaSahoo1
 
Java multi threading
Raja Sekhar
 
javathreads
Arjun Shanka
 
Java class 6
Edureka!
 
Threadlifecycle.36
myrajendra
 
OOPS object oriented programming UNIT-4.pptx
Arulmozhivarman8
 
MULTI THREADING IN JAVA
VINOTH R
 
Unit-3 MULTITHREADING-2.pdf
GouthamSoma1
 
Multithreading in java
Monika Mishra
 
Multithreading
sagsharma
 
multithreading,thread and processinjava-210302183809.pptx
ArunPatrick2
 
unit3 Exception Handling multithreadingppt.pptx
ArunPatrick2
 
unit3multithreadingppt-copy-180122162204.pptx
ArunPatrick2
 
econtent thread in java.pptx
ramyan49
 
CSE 3146 M1- MULTI THREADING USING JAVA .pdf
universitypresidency
 
Java Threads: Lightweight Processes
Isuru Perera
 
Multithreading.pptx
PragatiSutar4
 
Object-Oriented-Prog_MultiThreading.pptx
NasreenTaj20
 
Multithreading programming in java
Elizabeth alexander
 
Ad

Recently uploaded (20)

PDF
Stepwise procedure (Manually Submitted & Un Attended) Medical Devices Cases
MUHAMMAD SOHAIL
 
PPTX
Blanket Order in Odoo 17 Purchase App - Odoo Slides
Celine George
 
PPTX
Accounting Skills Paper-I, Preparation of Vouchers
Dr. Sushil Bansode
 
PDF
BÀI TẬP BỔ TRỢ THEO LESSON TIẾNG ANH - I-LEARN SMART WORLD 7 - CẢ NĂM - CÓ ĐÁ...
Nguyen Thanh Tu Collection
 
PPTX
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
PDF
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
PPTX
LEGAL ASPECTS OF PSYCHIATRUC NURSING.pptx
PoojaSen20
 
PPTX
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
PPTX
Various Psychological tests: challenges and contemporary trends in psychologi...
santoshmohalik1
 
PPTX
How to Configure Storno Accounting in Odoo 18 Accounting
Celine George
 
PPTX
HIRSCHSPRUNG'S DISEASE(MEGACOLON): NURSING MANAGMENT.pptx
PRADEEP ABOTHU
 
PPTX
Views on Education of Indian Thinkers J.Krishnamurthy..pptx
ShrutiMahanta1
 
PPTX
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
PPTX
ENGLISH LEARNING ACTIVITY SHE W5Q1.pptxY
CHERIEANNAPRILSULIT1
 
PDF
FULL DOCUMENT: Read the full Deloitte and Touche audit report on the National...
Kweku Zurek
 
PPTX
ANORECTAL MALFORMATIONS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
PPTX
Views on Education of Indian Thinkers Mahatma Gandhi.pptx
ShrutiMahanta1
 
PPTX
Modern analytical techniques used to characterize organic compounds. Birbhum ...
AyanHossain
 
PPTX
THE HUMAN INTEGUMENTARY SYSTEM#MLT#BCRAPC.pptx
Subham Panja
 
PDF
07.15.2025 - Managing Your Members Using a Membership Portal.pdf
TechSoup
 
Stepwise procedure (Manually Submitted & Un Attended) Medical Devices Cases
MUHAMMAD SOHAIL
 
Blanket Order in Odoo 17 Purchase App - Odoo Slides
Celine George
 
Accounting Skills Paper-I, Preparation of Vouchers
Dr. Sushil Bansode
 
BÀI TẬP BỔ TRỢ THEO LESSON TIẾNG ANH - I-LEARN SMART WORLD 7 - CẢ NĂM - CÓ ĐÁ...
Nguyen Thanh Tu Collection
 
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
IMP NAAC REFORMS 2024 - 10 Attributes.pdf
BHARTIWADEKAR
 
LEGAL ASPECTS OF PSYCHIATRUC NURSING.pptx
PoojaSen20
 
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
Various Psychological tests: challenges and contemporary trends in psychologi...
santoshmohalik1
 
How to Configure Storno Accounting in Odoo 18 Accounting
Celine George
 
HIRSCHSPRUNG'S DISEASE(MEGACOLON): NURSING MANAGMENT.pptx
PRADEEP ABOTHU
 
Views on Education of Indian Thinkers J.Krishnamurthy..pptx
ShrutiMahanta1
 
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
ENGLISH LEARNING ACTIVITY SHE W5Q1.pptxY
CHERIEANNAPRILSULIT1
 
FULL DOCUMENT: Read the full Deloitte and Touche audit report on the National...
Kweku Zurek
 
ANORECTAL MALFORMATIONS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
Views on Education of Indian Thinkers Mahatma Gandhi.pptx
ShrutiMahanta1
 
Modern analytical techniques used to characterize organic compounds. Birbhum ...
AyanHossain
 
THE HUMAN INTEGUMENTARY SYSTEM#MLT#BCRAPC.pptx
Subham Panja
 
07.15.2025 - Managing Your Members Using a Membership Portal.pdf
TechSoup
 

Chapter6 threads

  • 2. Objectives  Compare Multitasking and Multithreading  Define a thread  Discuss Benefits of multithreading  Explain how to create threads  Describe Thread states  Discuss Thread priorities  Discuss Daemon thread eACCP 2002/Sem 1/ JPL/ Session 6/ 2 of 26
  • 3. Multitasking Vs Multithreading  Multitasking is the ability to run one or more programs concurrently  Operating system controls the way in which these programs run by scheduling them  Time between switching of programs is minute  Multithreading is the ability to execute different parts of a program called threads, simultaneously eACCP 2002/Sem 1/ JPL/ Session 6/ 3 of 26
  • 4. Thread  Smallest unit of executable code that performs a task  An application can be divided into multiple tasks and each task can be assigned to a thread  Many threads executing simultaneously is termed as Multithreading  Although it may appear that the processes are running concurrently, it is not so 1/ JPL/ eACCP 2002/Sem Session 6/ 4 of 26
  • 5. Benefits of multithreading  Multithreading requires less overhead than multitasking  In multitasking, processes run in their own different address space  Tasks involved in multithreading can share the same address space  Inter-process calling involves more overhead than inter-thread communication eACCP 2002/Sem 1/ JPL/ Session 6/ 5 of 26
  • 6. Applications of thread  Playing sound and displaying images simultaneously  Displaying multiple images on the screen  Displaying scrolling text patterns or images on the screen eACCP 2002/Sem 1/ JPL/ Session 6/ 6 of 26
  • 7. Creating threads (1)  When Java programs execute, there is always one thread running and that is the main thread  It is this thread from which child threads are created  Program is terminated when main thread stops execution  Main thread can be controlled through ‘Thread’ objects eACCP 2002/Sem 1/ JPL/ Session 6/ 7 of 26
  • 8. Creating threads (2)  Thread objects can be created in two ways:  Declare a class that is a sub-class of the class Thread defined in java.lang package  class mythread extends Thread  Declare a class that implements the Runnable interface  class mythread implements Runnable  While using applets, Thread class cannot be extended. Therefore one has to implement the Runnable interface eACCP 2002/Sem 1/ JPL/ Session 6/ 8 of 26
  • 9. Creating threads (3)  To initiate a new thread, we use the start() method Mythread t = new Mythread(); t.start();  When start() method is invoked, a new thread of control is created  It then calls the run() method eACCP 2002/Sem 1/ JPL/ Session 6/ 9 of 26
  • 10. Creating threads (4) Example 1 – Creating a thread by extending the Thread class Output eACCP 2002/Sem 1/ JPL/ Session 6/ 10 of 26
  • 11. Creating threads (5) Example2 – Creating a thread by implementing the Runnable interface Output eACCP 2002/Sem 1/ JPL/ Session 6/ 11 of 26
  • 12. Thread states (1)  Born – a newly created thread is in a born state  Ready – after a thread is created, it is in its ready state waiting for start() method to be called eACCP 2002/Sem 1/ JPL/ Session 6/ 12 of 26
  • 13. Thread states (2)  Running – thread enters the running state when it starts executing  Sleeping – execution of a thread can be halted temporarily by using sleep() method. The thread becomes ready after sleep time expires eACCP 2002/Sem 1/ JPL/ Session 6/ 13 of 26
  • 14. Thread states (3)  Waiting – thread is in waiting state if wait() method has been invoked  Blocked – when the thread waits for an Input/Output operation  Dead – after the run() method has finished or the threads stop() method is2002/Sem 1/ JPL/ eACCP called Session 6/ 14 of 26
  • 15. Different thread states New Thread (BORN) READY SLEEPING SUSPENDED RUNNING WAITING BLOCKED DEADeACCP 2002/Sem 1/ JPL/ Session 6/ 15 of 26
  • 16. Some methods of thread class (1)  isAlive() – returns true if the thread is alive  getName() – returns the name of the thread  start() – used to start a thread by calling the method run() eACCP 2002/Sem 1/ JPL/ Session 6/ 16 of 26
  • 17. Some methods of thread class (2)  resume() – to resume the execution of a suspended thread  yield() – causes the currently executing thread to temporarily pause and allow other threads to execute  setName(String name) – sets the name of the thread to the name that is passed as eACCP 2002/Sem 1/ JPL/ argument Session 6/ 17 of 26
  • 18. Some methods of thread class (3)  join() – waits for the thread to die  isDaemon() – checks if the thread is a Daemon thread  activeCount() – returns the number of active threads  sleep() – used to suspend a thread for a certain period of time eACCP 2002/Sem 1/ JPL/ Session 6/ 18 of 26
  • 19. Conditions preventing thread execution  Thread is:  Not of highest priority  Put to sleep using sleep() method  Suspended using suspend() method  Thread is waiting because wait() method was called  Explicitly yielded using yield() method  Blocked for file I/O eACCP 2002/Sem 1/ JPL/ Session 6/ 19 of 26
  • 20. Managing threads (1)  Priorities for carrying out activities changes at times  eg :Planned to visit museum in the afternoon but due to toothache, had to go to doctor  Similarly while programming, we may have to run a thread of higher importance without stopping or suspending the current running thread  Thread priorities play an important role in such a situation eACCP 2002/Sem 1/ JPL/ Session 6/ 20 of 26
  • 21. Managing threads (2)  Thread priorities in Java are constants defined in the Thread class  NORM_PRIORITY – value is  MAX_PRIORITY – value is  MIN_PRIORITY – value is  The default priority is NORM_PRIORITY  Two methods used to change priority:  setPriority() - changes the thread’s current priority  getPriority() - returns the thread’s priority eACCP 2002/Sem 1/ JPL/ Session 6/ 21 of 26
  • 22. Daemon threads (1)  Two types of threads in Java:  User threads – created by the user  Daemon threads – threads that work in the background providing service to other threads  e.g. – the garbage collector thread  When user thread exits, JVM checks to find out if any other thread is running  If the only executing threads are Daemon threads, it exits eACCP 2002/Sem 1/ JPL/ Session 6/ 22 of 26
  • 23. Daemon threads (2)  We can set a thread to be a Daemon if we do not want the main program to wait until a thread ends  Thread class has two methods to deal with Daemon threads:  public void setDaemon(boolean value) : sets a thread to be a daemon thread  public void isDaemon() : checks if the given thread is a daemon thread eACCP 2002/Sem 1/ JPL/ Session 6/ 23 of 26
  • 24. Daemon threads (3) An example Output eACCP 2002/Sem 1/ JPL/ Session 6/ 24 of 26
  • 25. Session summary (1)  When Java programs are executed, there is always one thread that is running and that is the main thread  Threads can be used in two ways:  Declare the class to be a sub-class of the Thread class  Declare a class that implements the Runnable interface eACCP 2002/Sem 1/ JPL/ Session 6/ 25 of 26
  • 26. Session summary (2)  Each thread in a Java program is assigned a priority  The default priority of a thread that is created is 5  The methods Thread.suspend(), Thread.resume() and Thread.stop() have been deprecated since Java2  The threads providing service to other threads are referred to as daemon threads eACCP 2002/Sem 1/ JPL/ Session 6/ 26 of 26