多线程-方式一继承Thread方式

*1. 创建一个继承于Thread类的子类
* 2. 重写Thread类的run() --> 将此线程执行的操作声明在run()中
* 3. 创建Thread类的子类的对象
* 4. 通过此对象调用start():①启动当前线程 ② 调用当前线程的run()

 (数据共享时线程存在安全问题)

 

注意:1.启动一个线程,必须调用start(),不能调用run()的方式启动线程。

   2.如果再启动一个线程,必须重新创建一个Thread子类的对象,调用此对象的.start()

package main.exer;

/**
 * @Author:lx
 * @Description
 * @Date:23:10 2020/8/3
 * @Version
 */
public class ThreadDemo {
    public static void main(String[] args) {
        //方法一
//        myThread t1 = new myThread();
//        myThread01 t2 = new myThread01();
//        t1.start();
//        t2.start();
        //方法二
//        new myThread().start();
//        new myThread01().start();
        //方法三
        new Thread(){
            @Override
            public void run() {
                for(int i = 0; i<100;i++){
                    if (i%2 ==0){
                        System.out.println(Thread.currentThread().getName()+":"+i);
                    }
                }
            }
        }.start();

        new Thread(){
            @Override
            public void run() {
                for(int i = 0; i<100;i++){
                    if (i%2 !=0){
                        System.out.println(Thread.currentThread().getName()+":"+i);
                    }
                }
            }
        }.start();








    }
}

/*
        方法一 and 方法二
 */
class myThread extends Thread{
    @Override
    public void run() {
        for(int i = 0; i<100;i++){
            if (i%2 ==0){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
    }
}
class myThread01 extends Thread{
    @Override
    public void run() {
        for(int i = 0; i<100;i++){
            if (i%2 !=0){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
    }
}

 

posted @ 2020-08-03 23:34  lixia64  阅读(98)  评论(0编辑  收藏  举报