为了账号安全,请及时绑定邮箱和手机立即绑定

工作中线程的启动

标签:
Java

我们平时学习线程 , 继承Thread类实现Runnable接口 这么写 仅供学习

public class Test02 {

    public static void main(String[] args) {
        Book2 book = new Book2();
        new Thread(book, "A").start();
        new Thread(book, "B").start();
        new Thread(book, "C").start();
    }
}


class Book2 implements Runnable{
     private int num = 60;

    @Override
    public void run() {
        for (int i = 0; i < 60; i++) {
            System.out.println(Thread.currentThread().getName()+"卖出了第" + (num--)+ "本剩余" + num + "本");
        }
    }
}


在平时的工作中 ,我们几乎不会这样去开启线程 线程就是单独的一个资源类 不做任何多余的操作

我们实现了Runnable接口 他就变成了一个线程类 这样违背了我们OOP原则

我们记住 解耦 : 我们只需要把需要操作的资源 扔到线程中即可

我们需要操作的资源 多线程操作同一资源类 把资源类放入线程中
lombok表达式

public class Test01 {

    public static void main(String[] args) {
        Book book = new Book();

        new Thread(() -> {
            for (int i = 0; i < 60; i++) {
                book.sell();
            }
        }, "A").start();
        new Thread(() -> {
            for (int i = 0; i < 60; i++) {
                book.sell();
            }
        }, "B").start();
        new Thread(() -> {
            for (int i = 0; i < 60; i++) {
                book.sell();
            }
        }, "C").start();
    }
}


class Book{
    private int num = 60;

    public void sell(){
        System.out.println(Thread.currentThread().getName()+"卖出了第" + (num--)+ "本剩余" + num + "本");
    }

}

这样 Book类就是一个纯粹的资源类不受任何因素的影响

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消