taskbean.java

来自「新闻发布系统」· Java 代码 · 共 70 行

JAVA
70
字号
package oa.bean;

import java.io.Serializable;

public class TaskBean implements Runnable, Serializable {
    private int counter;
    private int sum;
    private boolean started;
    private boolean running;
    private int sleep;

    public TaskBean() {
        counter = 0;
        sum = 0;
        started = false;
        running = false;
        sleep = 100;
    }

    protected void work() {
        try {
            Thread.sleep(sleep);
            counter++;
            sum += counter;
        } catch (InterruptedException e) {
            setRunning(false);
        }
    }

    public synchronized int getPercent() {
        return counter;
    }

    public synchronized boolean isStarted() {
        return started;
    }

    public synchronized boolean isCompleted() {
        return counter == 10;
    }

    public synchronized boolean isRunning() {
        return running;
    }

    public synchronized void setRunning(boolean running) {
        this.running = running;
        if (running)
            started = true;
    }

    public synchronized Object getResult() {
        if (isCompleted())
            return new Integer(sum);
        else
            return null;
    }

    public void run() {
        try {
            setRunning(true);
            while (isRunning() && !isCompleted())
                work();
        } finally {
            setRunning(false);
        }
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?