brian314 2010-12-25 12:17
浏览 371
已采纳

发现一个问题,Timer跟TimerTask结合之后,是单线程运作的?

Timer timer = new Timer();
timer.schedule(new task1),2000,2000);
timer.schedule(new task2(),2000,2000);

往Timer里面添加两个TimerTask
后来发现是先执行完task1,再执行task2,然后执行task1,然后执行task2,
请问能设定Timer里面的线程互不干扰吗?我想它们并行执行

  • 写回答

1条回答 默认 最新

  • dyccsxg 2010-12-25 13:01
    关注

    这个本来就是并行执行的,只不过由于线程执行顺序的不确定性,
    短时间内看到的可能是一先一后.
    [code="java"]import java.util.*;

    public class Main{

    public static void main(String[] args){
    
        Timer t = new Timer();
        t.schedule(new TimerTask(){
            public void run(){
                System.out.println(">> task1.");
            }
        },2000,2000);
        t.schedule(new TimerTask(){
            public void run(){
                System.out.println("-- task2.");
            }
        },2000,2000);
    }
    

    }[/code][img]http://upeo9w.blu.livefilestore.com/y1pb7yYz7Mg4XIaKmZ0xmq0i9M6PCFIOr_v5DX_GJiZnFnOlXzLmOGXuGnpnxWJLVcEGPN9RmlGDbt9MV3aisTcLhpr2Wm8xk7k/java.png[/img]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 vmware exsi重置后的密码
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面