zoukankan      html  css  js  c++  java
  • 多线程 Time和TimeTask组合

        Timer和TimerTask类,是多线程的一种形式,使用的包是java.util.在这种实现方式中,Timer类实现的是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线程。其实,Timer类本身实现的就是一个线程,只是这个线程是用来实现调用其他线程的。而TimerTask类是一个抽象类,该类实现了Runnable接口,所以该类具有多线程的能力。

         在这种实现方式中,通过继承TimerTask是该类获得多线程的能力,将需要多线程执行的代码写在run方法内部,然后通过Timer可以启动线程的执行。

         下面的实例中,用MyTimerTask类实现了多线程。首先启动线程时需要首先创建一个Timer类的对象,以及一个MyTimerTask线程类的对象,然后使用Timer对象的schedule方法实现。启动县城的代码如下:

       //创建Timer

       Timer t = new Timer();

       //创建MyTimerTask

       MyTimerTask mtt = new MyTimerTask("线程1:");

      //启动线程

       t.schedule(mmt,0);

    其中schedule方法中的第一个参数mmt代表需要启动的线程对象,而第二个参数0则代表延迟0ms启动线程,也就是立即启动。

    代码示例如下:

    import java.util.*;

    public class MyTimerTaskTest {
     public static void main(String[] args){
      Timer t = new Timer();
      MyTimerTask mtt = new MyTimerTask("线程1:");
      t.schedule(mtt,0);
     }

    }

    import java.util.TimerTask;

    public class MyTimerTask extends TimerTask{
     String s;
     public MyTimerTask(String s){
      this.s = s;
      
     }
     public void run(){
      try{
       for(int i = 0; i<10;i++){
        Thread.sleep(1000);
        System.out.println(s+i);
       }
      }catch(Exception e){
       
      }
     }

    }

      

  • 相关阅读:
    hdu 1199 Color the Ball 离散线段树
    poj 2623 Sequence Median 堆的灵活运用
    hdu 2251 Dungeon Master bfs
    HDU 1166 敌兵布阵 线段树
    UVALive 4426 Blast the Enemy! 计算几何求重心
    UVALive 4425 Another Brick in the Wall 暴力
    UVALive 4423 String LD 暴力
    UVALive 4872 Underground Cables 最小生成树
    UVALive 4870 Roller Coaster 01背包
    UVALive 4869 Profits DP
  • 原文地址:https://www.cnblogs.com/belingzhong/p/2480410.html
Copyright © 2011-2022 走看看