怎么样才能往TimerTask类里面传送变量值呢,附部分程序供各位高手品鉴
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;
import java.util.Timer;
import java.util.TimerTask;
import java.io.*;
public class FormLoginDemo
{
public static int h=0;
public static void main(String[] args) throws Exception
{
for(int j=0;j<2;j++)
{
timer.scheduleAtFixedRate((TimerTask) new MyTask(), 0, JOB_INTERNAL);
h=j;
}
}
}
class MyTask extends TimerTask
{
public void run()
{
System.out.println(FormLoginDemo.h);
}
}
我的目的是想把主程序产生的h值传到所建立的线程里面去,每建立一个线程就传一个不同的值h+1给它,
但是上面的程序无法完成我的要求,
因为当第二个进程正在建立的时候,h值有可能已经不是1了,而是变成了2,此时线程再去读取h值,那么所取的这个值已经不是我所要的了,
即本来我要求的结果是:
0
1
而实际上即是
0
2
问下大家怎么样才能把特定的h值传到每个线程里面,需要什么构造方法
import org.apache.commons.httpclient.methods.*;
import java.util.Timer;
import java.util.TimerTask;
import java.io.*;
public class FormLoginDemo
{
public static int h=0;
public static void main(String[] args) throws Exception
{
for(int j=0;j<2;j++)
{
timer.scheduleAtFixedRate((TimerTask) new MyTask(), 0, JOB_INTERNAL);
h=j;
}
}
}
class MyTask extends TimerTask
{
public void run()
{
System.out.println(FormLoginDemo.h);
}
}
我的目的是想把主程序产生的h值传到所建立的线程里面去,每建立一个线程就传一个不同的值h+1给它,
但是上面的程序无法完成我的要求,
因为当第二个进程正在建立的时候,h值有可能已经不是1了,而是变成了2,此时线程再去读取h值,那么所取的这个值已经不是我所要的了,
即本来我要求的结果是:
0
1
而实际上即是
0
2
问下大家怎么样才能把特定的h值传到每个线程里面,需要什么构造方法
...全文
相关推荐
java类Timer和TimerTask的使用.pdf
这两个类是Java标准库`java.util`包的一部分,对于需要定时执行操作的应用场景非常有用。`Timer`类是一个线程类,它负责调度和执行`TimerTask`实例。
Java中的Timer和TimerTask简介(附完整代码实例)
本文介绍Java中Timer与TimerTask类的使用方法,通过多个实例展示如何在指定延迟或固定速率下执行一次性或周期性任务。涵盖任务调度、取消机制及守护线程设置,适用于后台定时操作的开发场景。
Android中使用定时器TimerTask类介绍.txt
Android中使用定时器TimerTask类介绍.txt Android中使用定时器TimerTask类介绍.txt
详解JAVA Timer和TimerTask
通过使用Timer和TimerTask,可以实现复杂的定时任务,提高程序的响应速度和可靠性。
Timer和TimerTask的使用
通过合理的使用这些类,开发者可以轻松地实现各种定时功能,从而提高应用程序的功能性和实用性。


Java SE
