a thread is a thread of execution in a program. the java ... · thread has its priority initially...

12
A thread is a thread of execution in a program. The Java Virtual Machine allows an application to have multiple threads of execution running concurrently. Every thread has a priority. Threads with higher priority are executed in preference to threads with lower priority. Each thread may or may not also be marked as a daemon. When code running in some thread creates a new Thread object, the new thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only if the creating thread is a daemon. When a Java Virtual Machine starts up, there is usually a single non-daemon thread (which typically calls the method named main of some designated class). The Java Virtual Machine continues to execute threads until either of the following occurs: The exit method of class Runtime has been called and the security manager has permitted the exit operation to take place. All threads that are not daemon threads have died, either by returning from the call to the run method or by throwing an exception that propagates beyond the run method. There are two ways to create a new thread of execution. One is to declare a class to be a subclass of Thread. This subclass should override the run method of class Thread. An instance of the subclass can then be allocated and started.

Upload: others

Post on 29-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only

A thread is a thread of execution in a program. The Java Virtual Machine allows an

application to have multiple threads of execution running concurrently.

Every thread has a priority. Threads with higher priority are executed in preference

to threads with lower priority. Each thread may or may not also be marked as a

daemon. When code running in some thread creates a new Thread object, the new

thread has its priority initially set equal to the priority of the creating thread, and is a

daemon thread if and only if the creating thread is a daemon.

When a Java Virtual Machine starts up, there is usually a single non-daemon thread

(which typically calls the method named main of some designated class). The Java

Virtual Machine continues to execute threads until either of the following occurs:

The exit method of class Runtime has been called and the security manager

has permitted the exit operation to take place.

All threads that are not daemon threads have died, either by returning from the

call to the run method or by throwing an exception that propagates beyond

the run method.

There are two ways to create a new thread of execution. One is to declare a class to

be a subclass of Thread. This subclass should override the run method of

class Thread. An instance of the subclass can then be allocated and started.

Page 2: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only
Page 3: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only
Page 4: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only
Page 5: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only
Page 6: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only
Page 7: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only
Page 8: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only
Page 9: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only

WHAT IS DAEMON THREAD

A daemon thread is a thread that does not prevent the JVM from exiting when the

program finishes but the thread is still running. An example for a daemon thread is

the garbage collection.

You can use the setDaemon(boolean) method to change the Thread daemon

properties before the thread starts.

Life cycle of a Thread (Thread States)

A thread can be in one of the five states. According to sun, there is only 4 states

in thread life cycle in java new, runnable, non-runnable and terminated. There is

no running state.

But for better understanding the threads, we are explaining it in the 5 states.

Page 10: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only

The life cycle of the thread in java is controlled by JVM. The java thread states are

as follows:

1. New

2. Runnable

3. Running

4. Non-Runnable (Blocked)

5. Terminated

1) New

The thread is in new state if you create an instance of Thread class but before the

invocation of start() method.

2) Runnable

The thread is in runnable state after invocation of start() method, but the thread

scheduler has not selected it to be the running thread.

3) Running

Page 11: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only

The thread is in running state if the thread scheduler has selected it.

4) Non-Runnable (Blocked)

This is the state when the thread is still alive, but is currently not eligible to run.

5) Terminated

A thread is in terminated or dead state when its run() method exits.

Java throw exception

Java throw keyword

The Java throw keyword is used to explicitly throw an exception.

We can throw either checked or uncheked exception in java by throw keyword. The

throw keyword is mainly used to throw custom exception. We will see custom

exceptions later.

The syntax of java throw keyword is given below.

1. throw exception;

Let's see the example of throw IOException.

1. throw new IOException("sorry device error);

java throw keyword example

In this example, we have created the validate method that takes integer value as a

parameter. If the age is less than 18, we are throwing the ArithmeticException

otherwise print a message welcome to vote.

1. public class TestThrow1{

2. static void validate(int age){

Page 12: A thread is a thread of execution in a program. The Java ... · thread has its priority initially set equal to the priority of the creating thread, and is a daemon thread if and only

3. if(age<18)

4. throw new ArithmeticException("not valid");

5. else

6. System.out.println("welcome to vote");

7. }

8. public static void main(String args[]){

9. validate(13);

10. System.out.println("rest of the code...");

11. }

12. }