当前位置: 首页 > 教程 > Java多线程 >

Java 线程执行多个任务

精华
小牛编辑
131浏览
2023-03-14

1 如何使用多个线程执行一个任务

如果需要由多个线程执行单个任务,则只有一个run()方法,例如:

1.1 多个线程执行一个任务示例1

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  多个线程执行一个任务
 */
class Demo extends Thread{
    public void run(){
        System.out.println("task one");
    }
    public static void main(String args[]){
        Demo t1=new Demo();
        Demo t2=new Demo();
        Demo t3=new Demo();

        t1.start();
        t2.start();
        t3.start();
    }
}

输出结果为:

task one
task one
task one

1.2 多个线程执行一个任务示例2

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  多个线程执行一个任务
 */
class Demo implements Runnable{
    public void run(){
        System.out.println("task one");
    }

    public static void main(String args[]){
        Thread t1 =new Thread(new Demo());//passing annonymous object of Demo class
        Thread t2 =new Thread(new Demo());

        t1.start();
        t2.start();

    }
}

输出结果为:

task one
task one

注意:每个线程在单独的堆栈中运行。

2 如何使用多个线程执行多个任务

如果必须通过多个线程执行多个任务,请使用多个run() 方法:

2.1 多个线程执行多个任务示例1

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  多个线程执行多个任务
 */
class Simple1 extends Thread{
    public void run(){
        System.out.println("task one");
    }
}

class Simple2 extends Thread{
    public void run(){
        System.out.println("task two");
    }
}

class Demo{
    public static void main(String args[]){
        Simple1 t1=new Simple1();
        Simple2 t2=new Simple2();

        t1.start();
        t2.start();
    }
}

输出结果为:

task one
task two

2.2 多个线程执行多个任务示例2

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  多个线程执行多个任务
 */
class Demo{
    public static void main(String args[]){
        Thread t1=new Thread(){
            public void run(){
                System.out.println("task one");
            }
        };
        Thread t2=new Thread(){
            public void run(){
                System.out.println("task two");
            }
        };


        t1.start();
        t2.start();
    }
}

输出结果为:

task one
task two

2.3 多个线程执行多个任务示例3

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  多个线程执行多个任务
 */
class Demo{

    public static void main(String args[]){
        Runnable r1=new Runnable(){
            public void run(){
                System.out.println("task one");
            }
        };

        Runnable r2=new Runnable(){
            public void run(){
                System.out.println("task two");
            }
        };

        Thread t1=new Thread(r1);
        Thread t2=new Thread(r2);

        t1.start();
        t2.start();
    }
}

输出结果为:

task one
task two