怎么样才能往TimerTask类里面传送变量值呢,附部分程序供各位高手品鉴

cds1 2007-09-19 01:14:43
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值传到每个线程里面,需要什么构造方法

...全文
268 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cds1 2007-09-20
  • 打赏
  • 举报
回复
谢谢 楼上兄弟的指点,送分



import java.util.Timer;
import java.util.TimerTask;
import java.io.*;

public class FormLoginDemo
{

private final static long JOB_INTERNAL=1000*10;
public static void main(String[] args) throws Exception
{
Timer timer=new Timer();
for(int j=0;j<2;j++)
{
timer.scheduleAtFixedRate((TimerTask) new MyTask(j), 0, JOB_INTERNAL);
}
}
}



class MyTask extends TimerTask
{
private int i;
public MyTask(int i)
{
this.i = i;
}
public void run()
{

System.out.println(this.i);

}

}
混沌骑士 2007-09-19
  • 打赏
  • 举报
回复
class MyTask extends TimerTask
{
private int i;
public MyTask(int i)
{
this.i = i;
}
public void run()
{

System.out.println(this.i);

}

}
代码转载自:https://pan.quark.cn/s/a4b39357ea24 LA 1010 逻辑分析仪被视作一种效能卓越的数字信号分析设备,其核心功能在于对数字通信协议,例如I²C,进行检测与解构。本资源将集中阐述LA 1010的操作流程以及如何借助该设备对I²C协议的波形展开分析。 确保逻辑分析仪被正确地连接至目标系统是极为关键的环节。在运用LA 1010的过程中,必须将分析仪的通道0与通道1分别对应连接至目标装置的SCL(时钟)与SDA(数据)线路。务必保证连接的稳固性且无任何干扰因素,以此确保数据采集的精确度。 随后,需要设定采样参数。采样频率对于能否成功捕捉到信号具有决定性的作用。针对I²C协议,通常选用的采样频率范围介于100kHz到400kHz之间,这一范围的选择取决于实际应用场景中I²C总线的运行速度。然而,LA 1010所能达到的最高采样速率可能高达500MHz,因此需要根据具体需求进行相应的调整。此外,还必须精心挑选适配目标设备工作电压的电压等级,例如3.3V、5V或1.8V。 在软件操作层面,需要选取恰当的通道与协议种,即I²C。一旦启动采样,逻辑分析仪便开始记录相关数据。软件界面通常会实时展示波形图,为观察与分析提便利。 关于I²C协议波形的解读,我们可以遵循以下步骤: 1. 总线处于空闲状态时:SCL与SDA均维持在高电平位置,这表明总线当前未进行数据传输。 2. 传输起始信号:当SCL处于高电平期间,SDA线从高电平转换至低电平,此动作标志着数据传输的开始。 3. 地址、数据及应答的识别:在每一个SCL高电平脉冲的持续时间内,SDA线上的电平状态代表了数据位。地址与数据的传输均为双向过程,而读写标识则由SDA线上的电平来...
内容概要:本文介绍了一种基于有限元分析(FEA)获取的磁通链接图来构建高精度永磁同步电机(PMSM)数学模型的方法,并在Simulink环境中实现仿真。该方法通过有限元软件提取电机在不同工况下的非线性磁通特性数据,建立精确的磁链-电流-转子位置映射关系,有效克服了传统线性模型在反映铁芯饱和、交叉耦合等非线性效应方面的局限性。所构建的模型能够更真实地模拟PMSM的实际电磁行为,适用于高性能控制算法(如矢量控制、直接转矩控制、模型预测控制等)的研发与验证,显著提升了控制系统在动态响应、效率优化和稳定性方面的仿真准确性。; 适合人群:具备电机控制理论基础、熟悉有限元分析与Simulink仿真的研究生、科研人员及从事电机设计与驱动系统开发的工程技术人员。; 使用场景及目标:①用于高精度永磁同步电机控制系统的设计、仿真与性能评估;②支持先进控制策略(如MPC、滑模控制、自适应控制)在非线性电机模型上的验证与优化;③为电机参数敏感性分析、能效优化、故障诊断与容错控制研究提可靠的仿真平台; 阅读建议:建议读者结合ANSYS Maxwell、JMAG等有限元工具与Matlab/Simulink进行联合仿真,掌握从电磁场建模、数据提取、查表插值到控制系统集成的完整流程,并参考文中模型架构与数据处理方法,逐步复现、验证并拓展适用于特定电机结构的高保真仿真模型。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧