package generic;

class Helper implements Runnable

{

    public void run()

    {

        try

        {

            System.out.println("thread2 going to sleep for 5000");

            Thread.sleep(5000);

        } catch (InterruptedException e) 

        {

            System.out.println("Thread2 interrupted");}

        }

}

 

public class Test implements Runnable

{

    public void run()

    {

        

    }

    public static void main(String[] args)

    {

        Test obj = new Test();

        Helper obj2 = new Helper();

             

        Thread thread1 = new Thread(obj);

        Thread thread2 = new Thread(obj2);

         

        

        thread1.start();

        thread2.start();

             

        ClassLoader loader = thread1.getContextClassLoader();

        Thread thread3 = new Thread(new Helper());

         

        

        System.out.println(Thread.activeCount());

        thread1.checkAccess();

             

        

        Thread t = Thread.currentThread();

         

        System.out.println(t.getName());

             

        System.out.println("Thread1 name: "+thread1.getName());

        System.out.println("Thread1 ID: " + thread1.getId());

             

        

        System.out.println("Priority of thread1 = " + thread1.getPriority());

         

        System.out.println(thread1.getState());

     

        thread2 = new Thread(obj2);

        thread2.start();

        thread2.interrupt();

        System.out.println("Is thread2 interrupted? " + thread2.interrupted() );

        System.out.println("Is thread2 alive? " + thread2.isAlive());

             

        thread1 = new Thread(obj);

        thread1.setDaemon(true);

        System.out.println("Is thread1 a daemon thread? " + thread1.isDaemon());

        System.out.println("Is thread1 interrupted? " + thread1.isInterrupted());

             

        

        System.out.println("thread1 waiting for thread2 to join");

        try

        {

            thread2.join();

        

        catch (InterruptedException e) 

        {

            e.printStackTrace();

        }

             

        

        thread1.setName("child thread xyz");

        System.out.println("New name set for thread 1" + thread1.getName());

             

        

        thread1.setPriority(5);

             

        thread2.yield();

             

        

        System.out.println(thread1.toString());

             

        

        Thread[] tarray = new Hilo[3];

         

        Thread.enumerate(tarray);

        System.out.println("List of active threads:");

        System.out.printf("[");

        for(Thread thread : tarray)

        {

            System.out.println(thread);

        }

        System.out.printf("]
"
);

             

        System.out.println(Thread.getAllStackTraces());

             

        ClassLoader classLoader = thread1.getContextClassLoader();

        System.out.println(classLoader.toString());

        System.out.println(thread1.getDefaultUncaughtExceptionHandler());

         

        thread2.setUncaughtExceptionHandler(thread1.getDefaultUncaughtExceptionHandler());

        thread1.setContextClassLoader(thread2.getContextClassLoader());

        thread1.setDefaultUncaughtExceptionHandler(thread2.getUncaughtExceptionHandler());

         

        thread1 = new Thread(obj);

        StackTraceElement[] trace = thread1.getStackTrace();

        System.out.println("Printing stack trace elements for thread1:");

        for(StackTraceElement e : trace)

        {

            System.out.println(e);

        }

             

        ThreadGroup grp = thread1.getThreadGroup();

        System.out.println("ThreadGroup to which thread1 belongs " +grp.toString());

        System.out.println(thread1.getUncaughtExceptionHandler());

        System.out.println("Does thread1 holds Lock? " + thread1.holdsLock(obj2));

             

             

        Thread.dumpStack();

             

    }

}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *