zoukankan      html  css  js  c++  java
  • 线程总结


     线 程 :
        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):
    设置守护线程 后台线程

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

  • 相关阅读:
    在spring boot中三分钟上手apache顶级分布式链路追踪系统skywalking
    Spring Boot Admin 2.1.0
    Spring Boot Admin 详解(Spring Boot 2.0,基于 Eureka 的实现)
    Spring Cloud Sleuth + Zipkin 链路监控
    guava布隆过滤器
    红包算法
    java国际化之时区问题处理
    SpringCloud2.0 Hystrix Feign 基于Feign实现断路器
    SpringBoot 自定义线程池,多线程
    基于Redisson+SpringBoot的Redission分布式锁
  • 原文地址:https://www.cnblogs.com/yxj808/p/11988124.html
Copyright © 2011-2022 走看看