• Java 线程


    Java 线程

    概述

    1. Java内置支持多线程编程
    2. 多线程程序包含两条或两条以上并发运行部分/指令流
      • 每个部分/指令流称为线程
      • 每个线程都有独立的执行路径
      • 许多多线程其实是模拟出来的,真正的多线程需要多核,即多CPU
      • 即使没有创建多线程,后台也存在多个线程,如main线程、gc线程等
        • main()线程即主线程,为系统入口,用于执行整个程序
    3. 多任务处理
      • 多线程是其一种特殊的形式
      • 有两种截然不同的类型:基于进程和基于线程
        • 基于进程
          • 进程:本质是一个执行程序
          • 特点:允许计算机同时运行两个或更多的程序
          • 调度程序所分派的最小单位:程序
          • 用于程序处理“大图片”
        • 基于线程
          • 最小执行单位:线程
            • 线程又称轻量级进程
            • 是进程的组成部分
            • 与进程一样拥有独立的执行控制,由操作系统负责调度
          • 可同时执行两个或多个任务的功能
          • 用于程序处理细节问题
          • 线程会带来额外开销:如CPU调度时间、并发控制开销
          • 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致
    4. 多进程与多线程的区分
      • 多线程比多进程程序需要的管理费用少
      • 进程是重量级任务,需分配独立地址空间;线程是轻量级,之间共享地址空间且共享同个进程
      • 进程间转换需要花费;线程通信简单且便宜,转换成本低
      • 多进程不受Java控制,多线程则受Java控制
      • 多进程即能同一时刻运行多个程序,如一边编辑word,一边播放音乐;多线程指同个进程中可执行多个任务,如音乐软件可在播放音乐的同时,进行浏览其他歌曲信息、互动等其他操作
    5. 多线程优点
      • 帮助写出CPU利用率最大的程序,使空闲时间保持最低,对交互式网络互连环境至关重要
    6. 多线程与单线程最大区别:各线程控制流彼此独立,但使得代码乱序执行,带来线程调度和同步的问题

    线程在Java中的实现

    1. Java提供类java.lang.Thread进行多线程编程
      • 该类提供大量方法方便控制各个线程
    2. run()方法
      • Thread类最重要方法
      • 为Thread类下的start()方法所调用
    3. 使用
      • 方法一:继承Thread类,覆盖run()方法
        • 优点:简单,符合习惯
        • 缺点:若一个类已从另一类继承,则其无法继承Thread类
          • 不建议使用,避免OOP单继承局限性
        • 核心方法
          方法 说明
          CurrentThread() 返回当前运行的Thread对象
          start() 启动线程
          run() 由线程调度调用
          stop() 使调用它的线程立即停止执行
          sleep(int n) 使线程睡眠n毫秒,之后可再次运行,其他线程不受影响;若休眠过程被其他线程中断
  • 相关阅读:
    【JavaEE初阶】进程篇
    nacos配置中心docker部署、配置及 goLang 集成使用
    MediaCodec原理及使用
    网络安全——HTTP头部注入
    如何通过CSS绘制三角形和小箭头
    LayUI多文件上传,支持历史上传预览
    Python 判断回文数
    PMP备考敏捷考题的五点应对策略
    机器学习笔记 - 隐马尔可夫模型的简述
    P1182 数列分段 Section II——二分答案
  • 原文地址:https://blog.csdn.net/weixin_57807561/article/details/127481109