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(),则谁插队先执行!当前的线程会阻塞住。
  • 相关阅读:
    移动web开发框架研究
    Android客户端缓存机制(文字缓存和多媒体文件缓存)
    edittext实现自动查询,刷新listview
    Android属性动画 nineoldandroids
    android 框架LoonAndroid,码农偷懒专用
    待看
    aidl
    国内外DNS服务器地址列表
    js 防止重复点击
    js 模块化
  • 原文地址:https://www.cnblogs.com/fcb-it/p/13276720.html
Copyright © 2011-2022 走看看