多线程

作者: 迷迷糊糊的番薯 | 来源:发表于2021-03-31 20:00 被阅读0次

    实现多线程

    1、继承Thread类,重写run方法
    2、实现Runnable接口

    线程的状态

    新建状态(New) :new Thread()后就进入新建状态。
    就绪状态(Runnable):start()启动线程后处于就绪状态。
    运行状态(Running):线程获取cpu权限进行执行。只能从就绪状态进入运行状态。
    阻塞状态(Blocked):
    (1)等待阻塞:wait() (可以由notify唤醒)
    (2)同步阻塞:synchronized()同步锁
    (3)其他阻塞:sleep、join等。
    sleep和wait的区别,sleep不会释放锁,wait释放锁。
    死亡状态(Dead):

    synchronized是一种同步锁
    synchronized可以修饰方法、代码块、类,是隐式锁,出了作用域会自动释放
    lock是显式锁,需要手动开启和关闭锁

        private final ReentrantLock lock = new ReentrantLock();
        public void method(){
            lock.lock();
            try {
    //            保证线程安全的代码
            }
            finally {
    //            如果同步代码有异常,要把unlock写到finally中(一般直接写上)
                lock.unlock();
            }
        }
    

    相关文章

      网友评论

          本文标题:多线程

          本文链接:https://www.haomeiwen.com/subject/nbuahltx.html