将整数传递给线程

时间:2016-02-11 02:10:41

标签: java multithreading

我(非常)非常新的Java。有问题的代码产生了一个在特定时间执行某些操作的线程。此时间是从通过http://ip:80/time=(int,sec)接收它的主线程获得的
用户可以调用此URL并根据需要多次更新此时间。这意味着我必须将我的整数传递给线程,以便它可以使用给定的时间运行,例如当它发生更改时。我该怎么办?

以下是我的线程的定义和启动方式:

Thread launchLoadBalancer = new Thread() {
    public void run() {
        TimerTask timerTask = new TimerTask(serverSocket, //object for extra data);
        try {
            timerTask.start();
        } catch (IOException e) {

        }
    }
};
launchtimerTask.start();

我必须从new TimerTask传递整数。我可以在另一端修改构造函数。如何正确传递整数?

2 个答案:

答案 0 :(得分:0)

public class Main {

    public static void main(String[] args) {

        int length = 1000;
        Thread launchLoadBalancer = () -> {
            TimerTask timerTask = new TimerTask(serverSocket, length);
            try {
                timerTask.start();
            } catch (IOException e) {

            }
        };
        launchLoadBalancer.start();
    }
}

答案 1 :(得分:0)

创建一个扩展Thread的新类,并使用一个带int的构造函数。

class LaunchLoadBalancerThread extends Thread {
    private int i;
    public LaunchLoadBalancerThread(int i) {
        this.i = i;
    }
    public void run() {
        TimerTask timerTask = new TimerTask(serverSocket, //object for extra data);
        try {
            timerTask.start();
        } catch (IOException e) {

        }
    }
}

然后,您可以使用该类(用您的号码替换i):

Thread launchLoadBalancer = new LaunchLoadBalancerThread(i);
launchLoadBalancer.start();