java线程以及定时任务

Posted NoYone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java线程以及定时任务相关的知识,希望对你有一定的参考价值。

线程的概念在此不再赘述。

下面介绍三种启动线程的方式。

1. 继承Thread

public class ThreadTest extends Thread {

    @Override
    public void run() {
        int i  = 0;
        while (i < 10){
            i++;
            System.out.println("this is Thread thread");
        }

    }
}

调用

ThreadTest threadTest = new ThreadTest();
threadTest.start();

2. 实现Runnable接口

public class RunnableTest implements Runnable{

    int a;
    int b;

    public RunnableTest(int a, int b){
        this.a = a;
        this.b = b;
    }
    public void run(){
        int i = 0;
        while (i < 10){
            i++;
            System.out.println("a:" + a + " b:" +b);
        }
    }
}

调用

RunnableTest threadExtends2 = new RunnableTest(5,6);
new Thread(threadExtends).start();

3. 匿名类

Thread t = new Thread(){
          public void run(){
              int i = 0;
              while (i < 10){
                  i++;
                  System.out.println("this is Inside Thread");
             }
          }
};
t.start()

线程常用方法:

1. sleep    线程暂停,睡会再执行。

2. join    加入到当前线程中,若加入,则先执行加入的线程,后执行当前线程。

3. setPriority    设置线程优先级。

4. yield    临时暂停。

 

下面介绍一种定时执行任务的方法,用的是TimerTask

public static void main(String args[]){
        Timer t = new Timer();
        TimerTask timerTask = new TimerTask() {
            int i = 0;
            @Override
            public void run() {
                System.out.println(i);
                i++;
                if (i == 5)
                    t.cancel();
            }
        };
        t.scheduleAtFixedRate(timerTask,0,1500);

 

以上是关于java线程以及定时任务的主要内容,如果未能解决你的问题,请参考以下文章

java定时任务使用多线程webservcie执行了两次这是为啥?

死磕 java线程系列之线程池深入解析——定时任务执行流程

spring定时任务Scheduled与定时任务线程池配置SchedulingConfigurer ,Java

《Java多线程编程核心技术》定时器Timer的使用

《Java多线程编程核心技术》定时器Timer的使用

Java定时任务:利用java Timer类实现定时执行任务的功能