多线程及定时器

来源:互联网 发布:最新安卓java模拟器 编辑:程序博客网 时间:2024/06/15 18:23

1、在Thread子类覆盖的run方法里编写运行代码
2、在传递给Thread对象的Runnable对象的run方法里编写运行代码。

通过查看Thread类的run方法源码可知,这两种方式都是在调用Thread的run方法,如果Thread类的run方法没有被覆盖,并且为该Thread对象传递了一个Runnable对象,该run方法会调用Runnable对象的run方法。
如果在Thread子类中覆盖了run方法,也为Thread传递了一个runnable对象,那么线程执行时是运行哪个run方法,运行的是子类中覆盖了Thread的run方法。

Timer定时器

public class TraditionalTimerTest {    private static int count = 0;    public static void main(String[] args) {        class MyTimerTask extends TimerTask {            @Override            public void run() {                count = (count+1)%2;                System.out.println("bombing!");                new Timer().schedule(new MyTimerTask(), 2000+2000*count);            }        }        new Timer().schedule(new MyTimerTask(), 2000);        while (true) {            System.out.println(new Date().getSeconds());            try {                Thread.sleep(1000);            } catch (InterruptedException e) {                e.printStackTrace();            }        }    }}

quartz

0 0
原创粉丝点击