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

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

  • 相关阅读:
    阮一峰的网络日志
    解决Windows路径太长的目录以及文件名超长删除的问题
    LVM扩容根分区
    Centos7 搭建prometheus+Grafana监控
    python3 读取txt文件数据,绘制趋势图,matplotlib模块
    linux python3安装whl包时报错解决:is not a supported wheel on this platform
    堆排序
    nginx: [emerg] "upstream" directive is not allowed here in .../.../.../*.conf
    Github私有仓库使用设置
    AWK处理重复Hosts
  • 原文地址:https://www.cnblogs.com/yxj808/p/11988124.html
Copyright © 2011-2022 走看看