• 线程总结



     线 程 :
        1,不能脱离进程执行
        2,线程用来执行代码
        3,线程可以同时运行,多个线程可以同时执行代码

     cpu : cup 在同一时刻只能执行一段代码
        线程1:指令 --> 调度 --> 访问资源
        线程2:指令 --> 调度 --> 访问资源
        
        
       【线程用来执行代码,
        执行run方法中代码
        线程执行完run方法代码会停止
        线程凭运气执行.
        多段代码同时执行】

    线程的生命周期 : 背
        1,新建状态 :
        1,继承 Thread 重写run
        2,My3 implements Runnable
           Runnable ru = new My3();
           Thread t = new Thread(ru);
        2,就绪状态 :
        线程.start();
        可以开始执行代码,差cup的执行权限
        3,运行状态 :
        随机获得了cpu执行权限
        正在执行run方法中的代码
        时间片(1毫秒)
          阻塞状态 :(线程不执行)
           1,挂起
            sleep(100);
            join();
            yield()
           2,锁池等待
            [当前线程]执行加锁的代码时,锁被其他线程拿走了
            那么[当前线程]就会去[锁池等待]

            当其他线程把加锁的代码执行完毕以后会自动释放锁,
            [当前线程]会回到就绪状态.
           3,等待池等待
            锁对象.wait();
            notifyAll();
            interrupt();
            都是到锁池等待

        4,死亡状态 :
            run方法执行完毕
          stop()
        jvm 强制关闭


    yield();只会给优先级高的让步
    锁池等待:加锁的代码--》进入到锁池等待--》锁还回来

    interrupt:
    isinterrupted:清空标志位

    setDemon(true):
    设置守护线程 后台线程

    *【多个线程】 操作【同一个数据】
      会涉及到线程安全问题
       

  • 相关阅读:
    LeetCode 116. 填充每个节点的下一个右侧节点指针
    angluar 表单的验证 动态数据项表单验证
    Angular:ng-style,ng-class的使用
    1.splice(),slice(),split()快查
    js输入小写金额转大写
    Angular--CheckBox,checkbox多选,保存的时候用逗号隔开
    Angular--CheckBox
    Angular--Radio
    对于mysql中的group by分组后获取组内创建时间最大的那行数据
    GIT版本管理看这一篇就够了
  • 原文地址:https://www.cnblogs.com/yxj808/p/11988124.html
Copyright © 2020-2023  润新知