How many ways can a thread be used?

Answer Posted / vikneswaran

two way to create a thread one is extends Thread classs
another is Runable interface suppose one class extends
another class we cant create for theard class so go for
interface.
1.Thread obj=new Thread();
2.Thread obj=new Thread(class obj);(Runable interface)
Example program:
//creating the thread by extends thread class
public class ThreadSample1 extends Thread
{
boolean runthread = true;
//override the run method
public void run ()
{
while (runthread)//thread will run untill runthread
flag is true
{
System.out.println("Inside thread, name is " +
getName());

try
{ //it will be wait state for 100ms, after that
it will come to run state
//to call sleep method, we should handle the
exception using try catch block
System.out.println("Inside thread, going to
sleep for 100ms");
Thread.sleep(100);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}

public static void main (String args[])
{
//Object creation
ThreadSample1 clsObj = new ThreadSample1();

//set the priority of the thread, default is
NORM_PRIORITY
clsObj.setPriority(Thread.MAX_PRIORITY); //priority
number is 10
//clsObj.setPriority
(Thread.NORM_PRIORITY); //priority number is 5
//clsObj.setPriority(Thread.MIN_PRIORITY);//priority
number is 1
//clsObj.setPriority(Thread.NORM_PRIORITY +
1);//priority number is 6

//set the thread name. Default thread name is Thread-
1
clsObj.setName("FirstThread");

//thread id will be assigned randomly during the
runtime
System.out.println("Thread Id is " + clsObj.getId());

//get the thread name
System.out.println("Thread Name is " + clsObj.getName
());

//get the thread priority
System.out.println("Thread Priority is " +
clsObj.getPriority());

//get the thread state
System.out.println("Before start : Thread State is "
+ clsObj.getState());

//start the thread
clsObj.start();

/* we can create the thread as follows
ThreadSample1 clsObj1 = new ThreadSample1();
clsObj1.setName("TestThread");
clsObj1.setPriority(5);
Thread threadObj = new Thread(clsObj1);
threadObj.start();

Thread threadObj1 = new Thread(new ThreadSample1());
threadObj1.start();
*/

Thread th2 = new Thread(new ThreadSample1());
th2.start();

System.out.println("After start : Thread State is "
+ clsObj.getState());

//to suspend the thread, it will just pause the
execution and keep its in current state
clsObj.suspend();
//get the thread state
System.out.println("After Suspend : Thread State
is " + clsObj.getState());

//resume the thread from the suspend
clsObj.resume();

System.out.println("Thread alive state is " +
clsObj.isAlive());

//to stop the thread, after completion of run, it
will go to dead state
clsObj.runthread = false;
//force the thread to stop.
//clsObj.stop();
System.out.println("After stop : Thread State is " +
clsObj.getState());

}
}
Runable interface program:


//creating the thread by implements runnable interface
public class ThreadSample2 implements Runnable
{
boolean runthread = true;
//override the run method
public void run ()
{
while (runthread)
{
System.out.println("Inside thread");

try
{ //it will be wait state for 1000ms, after that
it will come to run state
//to call sleep method, we should handle the
exception using try catch block
Thread.sleep(1000);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}

public static void main (String args[])
{
//Object creation
ThreadSample2 clsObj = new ThreadSample2();

//since its implements runbable interface,
//we cannt do the follwoing for this way of thread
creation

//set the priority of the thread, default is
NORM_PRIORITY
//clsObj.setPriority(Thread.MAX_PRIORITY); //priority
number is 10

//set the thread name. Default thread name is Thread-1
//clsObj.setName("FirstThread");

//thread id will be assigned randomly during the
runtime
//System.out.println("Thread Id is " + clsObj.getId
());

//get the thread name
//System.out.println("Thread Name is " +
clsObj.getName());

//get the thread priority
//System.out.println("Thread Priority is " +
clsObj.getPriority());

//get the thread state
//System.out.println("Before start : Thread State
is " + clsObj.getState());

//start the thread
//clsObj.start();

//but we can do through this way
ThreadSample2 clsObj1 = new ThreadSample2();
Thread threadObj = new Thread(clsObj1);

/*
Thread th2 = new Thread(new ThreadSample1());
th2.start();
*/

threadObj.setName("runnable");
threadObj.setPriority
(Thread.MAX_PRIORITY); //priority number is 10

//thread id will be assigned randomly during the
runtime
System.out.println("Thread Id is " + threadObj.getId
());

//get the thread name
System.out.println("Thread Name is " +
threadObj.getName());

//get the thread priority
System.out.println("Thread Priority is " +
threadObj.getPriority());

//get the thread state
System.out.println("Before start : Thread State is "
+ threadObj.getState());

threadObj.start();

System.out.println("After start : Thread name is " +
threadObj.getName());

//to suspend the thread, it will just pause the
execution and keep its in current state
threadObj.suspend();
//get the thread state
System.out.println("After Suspend : Thread State is "
+ threadObj.getState());

//resume the thread from the suspend
threadObj.resume();

System.out.println("Thread alive state is " +
threadObj.isAlive());

//to stop the thread, after completion of run, it
will go to dead state
clsObj.runthread = false;
//force the thread to stop.
threadObj.stop();
System.out.println("After stop : Thread State is " +
threadObj.getState());

}
}


Synchronized, multithread and threadgruop
------------------------------------------------------------
--------------------


/**
* @author Vikneshwaran
* @version 1.0
* #################### Template #####################
* class thread_class_name extends Thread
* {
* data_type base_var_name = var_value;
*
* public void run()
* {
* //do something
* }
*
* public synchronized void method_name()
* {
* //do something
* }
*
* public static void main (String args[])
* {
* //Multi thread
* thread_class_name obj1 = new thread_class_name();
* thread_class_name obj2 = new thread_class_name();
* thread_class_name obj3 = new thread_class_name();
*
* obj1.start();
* obj2.start();
* obj3.start();
*
* //Thread group
* thread_class_name obj = new thread_class_name();
* ThreadGroup thdGrp = ThreadGroup("groupname");
*
* Thread threadOb1 = new Thread(threadGrp, clsObj3);
* Thread threadOb2 = new Thread(threadGrp, clsObj3);
* Thread threadOb3 = new Thread(threadGrp, clsObj3);
*
* threadGrp.setMaxPriority(Thread.NORM_PRIORITY);
* threadGrp.stop();
* }
* }

Is This Answer Correct ?    0 Yes 3 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What does module-relative mean?

573


What is jboss?

571


Why does the tag url-encode javascript and mailto links?

577


What you mean by COM and DCOM?

611


For which statements does it make sense to use a label?

585






What is the highest-level event class of the event-delegation model?

568


What is the difference between static and non-static with examples?

1356


Explain what is orm?

672


How a component can be placed on Windows?

2264


What is the difference between session and entity beans?

578


To what value is a variable of the string type automatically initialized?

605


Do I need to import javlang package any time? Why ?

623


hi friends, i have done my BE(CSE)at 2011 then i have joined one company before they asked me 50k so i paid but now they telling no project here so we r going to close like that so now i need any job i have good knowledge in core java and j2ee(jsp,servlet,jdbc) so if u know any job pl help me

1776


How to deploy Jar, War files in J2EE?

2168


Which class is the immediate superclass of the menucomponent class?

618