zoukankan      html  css  js  c++  java
  • 多线程

    1   线程的实现

      实现Runnable接口相对于继承Thread类来说,有如下优势

      适合多个相同程序代码的线程区处理统一资源的情况

      可以避免由于Java单继承特性带来的局限

      增强了程序的健壮性,代码能够被多个线程共享,代码与数据是独立的

    例如:卖5张票,继承Thread类的三个线程会各卖5张,其资源<5张票>并没有共享,实现Runnable接口的话,三个线程会一共卖5张票,实现资源共享

    2  线程的状态

      任何线程一般具有5种状态

      创建:用构造方法新建一个线程之后,该线程就处于创建状态 如 Thread thread = new Thread()此时,已具有相应的内存空间和其他资源,但处于不可运行状态。

      终止:线程调用stop()会run()执行结束后。即处于死亡状态,线程结束。

      运行:当就绪状态的线程被调用并获得处理器资源时,该线程就进入了运行状态,此时会自动调用run(),run()定义了该线程的操作和功能

      阻塞:一个运行状态的线程在某些特殊情况如被挂起,或需要执行耗时的输入/输出操作时,将让出CPU并暂时终止自己的执行,进入阻塞状态,阻塞时,线程不能进入队列,只有当阻塞原因消除,线程转入就绪状态排队

      就绪:调用start()启动线程即处于就绪状态,该线程进入线程队列排队,等待CPU服务,已具备运行条件

    3  线程的强制运行

      使用join(),让一个线程强制运行,其他线程无法运行,必须等待此线程结束之后才能继续进行

    4  同步和死锁:过多的同步会造成死锁 

    5  

      

  • 相关阅读:
    vue.js实战——.native修饰符
    vue.js实战——props数据验证(自定义构造器检测)
    vue.js实战——props单向数据流
    vue组件之嵌套
    vue非父子组件之间的通信——发布订阅模式,总线机制
    脚本加载优化方法
    文字溢出时,实现在末尾显示三个点省略效果
    1-stm32 gpio库函数
    2-C语言 排序算法
    电子工程师扫盲
  • 原文地址:https://www.cnblogs.com/blog4matto/p/5598788.html
Copyright © 2011-2022 走看看