SelfRunThreadTemplate.java Source code

Java tutorial

Introduction

Here is the source code for SelfRunThreadTemplate.java

Source

public class SelfRunThreadTemplate extends Object implements Runnable {
    private Thread internalThread;
    private volatile boolean noStopRequested;

    public SelfRunThreadTemplate() {
        // add your code here ...
        System.out.println("initializing...");

        noStopRequested = true;
        internalThread = new Thread(this);
        internalThread.start();
    }

    public void run() {
        if (Thread.currentThread() != internalThread) {
            throw new RuntimeException("only the internal " + "thread is allowed to invoke run()");
        }

        while (noStopRequested) {
            System.out.println("in run() - still going...");

            try {
                Thread.sleep(700);
            } catch (InterruptedException x) {
                Thread.currentThread().interrupt();
            }
        }
    }

    public void stopRequest() {
        noStopRequested = false;
        internalThread.interrupt();
    }

    public boolean isAlive() {
        return internalThread.isAlive();
    }

    public static void main(String[] args) {
        SelfRunThreadTemplate sr = new SelfRunThreadTemplate();
        try {
            Thread.sleep(3000);
        } catch (InterruptedException x) {
        }
        sr.stopRequest();
    }

}