leo-y
4/5/2018 - 1:31 AM

Runnable


        // uses MyRunnable and Thread instances
        Runnable r = new MyRunnable(sleepTimeInSecs, textArea);
        Thread t = new Thread(r);
        t.setName(nameField.getText());
        // remember to call start method
        t.start();
        
        
        
define:
public class MyRunnable implements Runnable {
    // unique state per runnable instance
    /**
     * sleep time variable.
     */
    private long mySleepTimeInMillis;
    /**
     * area to display values.
     */
    private JTextArea area;

    /**
     * Constructor with sleep time and text are to display values.
     * @param sleepTimeInSecs sleep time value
     * @param a textarea to display text
     */
    public MyRunnable(int sleepTimeInSecs, JTextArea a) {
        mySleepTimeInMillis = sleepTimeInSecs * 1000;
        area = a;
    }

    /**
     * Implementation of run method of Runnable Interface.
     */
    @Override
    public void run() {
        Thread myThread = Thread.currentThread();
        try {
            while (true) {
                area.append("In \"MyRunnable.run()\": thread name: "
                        + myThread.getName() + "\n");
                Thread.sleep(mySleepTimeInMillis);
            }
        } catch (InterruptedException e) {
            area.append(myThread.getName() + ": Interrupted\n");
        }
    }
}