InnerSelfRunMain.java Source code

Java tutorial

Introduction

Here is the source code for InnerSelfRunMain.java

Source

public class InnerSelfRunMain extends Object {
    private Thread internalThread;

    private volatile boolean noStopRequested;

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

        noStopRequested = true;

        Runnable r = new Runnable() {
            public void run() {
                try {
                    runWork();
                } catch (Exception x) {
                    // in case ANY exception slips through
                    x.printStackTrace();
                }
            }
        };

        internalThread = new Thread(r);
        internalThread.start();
    }

    private void runWork() {
        while (noStopRequested) {
            System.out.println("in runWork() - still going...");

            try {
                Thread.sleep(700);
            } catch (InterruptedException x) {
                Thread.currentThread().interrupt(); // re-assert interrupt
            }
        }
    }

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

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

    public static void main(String[] args) {
        InnerSelfRunMain sr = new InnerSelfRunMain();

        try {
            Thread.sleep(3000);
        } catch (InterruptedException x) {
        }
        sr.stopRequest();
    }
}