zoukankan      html  css  js  c++  java
  • 并发编程:基础知识

    为什么需要多线程

    • 单核CPU->多核CPU->并行计算
    • 实时性需求->线程是轻量级的进程,任务调度的最小单位,资源消耗比进程低
    • 充分利用CPU资源,提升吞吐量

    线程在Java中的应用

    四种方式创建多线程:

    • 继承Thread类(本质上是实现了Runnable接口)
    • 实现Runnable接口扔到Thread构造方法(无返回值)
    • 实现Callable接口/Future扔到Thread构造方法(有返回值)
    • 线程池ThreadPool
      最终调用Thread.start()方法启动线程。

    多线程适用场景

    线程池:资源管理、节省了创建和销毁线程的开销、提高响应速度
    IO阻塞

    线程的生命周期

    • NEW:刚创建未启动
    • RUNNABLE:可运行:就绪(可以抢时间片)和运行中(已经拿到了时间片)来回切换
    • BLOCKED:等待锁
    • WAITING:调用wait/join/park等方法的时候,调用notify/nofityAll/unpark返回
    • TIMED_WAITNG:调用wait(参数)、sleep(参数)等
    • TERMINATED:线程结束

    join()

    • join()方法是调用join()的线程先执行!!理解为插队,谁join(),则谁插队先执行!当前的线程会阻塞住。
  • 相关阅读:
    Python进阶(二)
    python基础(四)
    Python基础(三)
    python基础(二)
    Python基础(一)
    backbone之extend方法(刚明白了点)
    js中url相关
    bootstrap导航、导航条及导航翻页相关详解
    bootstrap中css组件(除导航条)
    bootstrap基础排版优化
  • 原文地址:https://www.cnblogs.com/fcb-it/p/13276720.html
Copyright © 2011-2022 走看看