多线程实现方案

实现线程的方式:

1、继承Thread类,重写run方法,创建该类的对象并启动
class MyThread1 extends Thread {
    MyThread1() {
    }
    //public Thread(String name)
    MyThread1(String name) {
        super(name);
    }
    @Override
    public void run() {
        //将来线程启动后需要执行的逻辑
        for (int i = 1; i <= 200; i++) {
            System.out.println(this.getName() + " - Hello word " + i);
        }
    }
}
public class ThreadDemo1 {
    private static Object Thread;
    public static void main(String[] args) {
        //创建一个自己的线程对象
        MyThread1 t1 = new MyThread1("小猪");
        t1.setPriority(1);
        System.out.println("t1: "+t1.getPriority());
        MyThread1 t2 = new MyThread1();
        t2.setName("小明");
        t2.setPriority(5);
        System.out.println("t2:"+t2.getPriority());
        t1.start();
        t2.start();
    }
}
2、实现Runnable接口,实现run方法,借助Thread类创建线程对象并启动
public class MyRunnable1 implements Runnable{
    @Override
    public void run() {
        //线程要执行的逻辑
        for(int i=1;i<=200;i++){
            //获取当前的线程对象
            System.out.println(Thread.currentThread().getName() + " - "+i);
        }
    }
}
class RunnableDemo1{
    public static void main(String[] args) {
        MyRunnable1 myRunnable1 = new MyRunnable1();
        //Thread(Runnable target, String name) 分配一个新的 Thread对象。并设置名字
        Thread t1 = new Thread(myRunnable1,"朱总");
        Thread t2 = new Thread(myRunnable1,"陈少");
        Thread t3 = new Thread(myRunnable1,"徐帅");
        t1.start();
        t2.start();
        t3.start();
    }
}
实现接口方式的好处
(1)可以避免由于Java单继承带来的局限性。
(2)适合多个相同程序的代码去处理同一个资源的情况,把线程同程序的代码,数据有效分离,较好的体现了面向对象的设计思想。
3、实现Callable接口,实现call方法,借助线程池使用
好处:
可以有返回值
可以抛出异常
弊端:
代码比较复杂,所以一般不用
posted @ 2024-08-21 15:12  hello_future  阅读(11)  评论(0)    收藏  举报