匿名内部类方式实现线程的创建和线程安全问题的概述

匿名内部类方式实现线程的创建

匿名:没有名字

内部类:写在其他类内部的类

匿名内部类作用:简化代码

  把子类继承父类,重写父类方法,创建子类对象合一步完成

  把实现类实现类接口,重写接口中的方法,创建实现类对象合成一步完成

匿名内部类的最终产物:子类/实现类对象,而这个类没有名字

格式:

  new 父类/接口(){

    重复父类/接口中的方法

};

public class demg_06 {
    public static void main(String[] args) {
        //线程的父类是Thread
        //new Thread.start
        new Thread(){
            //重写run方法,设置线程
            @Override
            public void run() {
                for (int i = 0; i <= 20 ; i++) {
                    System.out.println(Thread.currentThread().getName()+"-->"+"黑马");
                }
            }
        }.start();

        //Runnable r = new Runnable(); //多态
        Runnable r = new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <=20 ; i++) {
                    System.out.println(Thread.currentThread().getName()+"-->"+"程序猿");
                }
            }
        };
        new Thread(r).start();

        //简化接口的方式
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <= 20 ; i++) {
                    System.out.println(Thread.currentThread().getName()+"-->"+"Java");
                }
            }
        }).start();
    }
}

 

 

线程安全问题的概述

如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。

程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。

 

 

posted @ 2022-07-09 10:01  monkey大佬  阅读(93)  评论(0)    收藏  举报