码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JAVAEE 初阶 多线程基础(一)


    多线程基础

      • 一.线程的概念
      • 二.为什么要有线程
      • 三.进程和线程的区别和关系
      • 四.JAVA的线程和操作系统线程的关系
      • 五.第一个多线程程序
        • 1.继承Thread类

    一.线程的概念

    一个线程就是一个 “执行流”. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行着多份代码

    同时,线程保证了独立的调度执行,而且也省去了资源的开销.

    在这里插入图片描述
    在这里插入图片描述

    二.为什么要有线程

    首先, “并发编程” 成为 “刚需”.
    单核 CPU 的发展遇到了瓶颈. 要想提高算力, 就需要多核 CPU. 而并发编程能更充分利用多核 CPU资源.有些任务场景需要 “等待 IO”, 为了让等待 IO 的时间能够去做一些其他的工作, 也需要用到并发编
    程.
    其次, 虽然多进程也能实现 并发编程, 但是线程比进程更轻量.创建线程比创建进程更快.销毁线程比销毁进程更快.调度线程比调度进程更快.
    最后, 线程虽然比进程轻量, 但是人们还不满足, 于是又有了 “线程池”(ThreadPool) 和 “协程”(Coroutine)

    三.进程和线程的区别和关系

    1.进程至少包含一个线程
    2.每个线程,是一个独立的执行流,它有独立执行的能力,同时也省去了分配资源和释放资源的开销,单独的参与到CPU的调度中(状态.上下文.优先级,记账信息等)
    3.每个进程都有自己的资源,线程之间共用这些资源
    4.线程并不是越多越好,有时候会降低效率.
    5.同一个进程中的线程之间,可能会互相干扰.造成线程安全问题.
    6.进程之间不会相互影响,但是线程和线程之间,如果某一个线程抛出异常,可能会对其他的线程造成影响,将整个进程中的全部线程中止.

    四.JAVA的线程和操作系统线程的关系

    线程是操作系统中的概念. 操作系统内核实现了线程这样的机制, 并且对用户层提供了一些 API 供用户使用(例如 Linux 的 pthread 库).Java 标准库中 Thread 类可以视为是对操作系统提供的 API 进行了进一步的抽象和封装

    五.第一个多线程程序

    1.继承Thread类

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    HQS.Part1-Linux基础命令、gcc编译、2进制、8进制、16进制转换
    OK6410A 开发板 (八) 126 linux-5.11 OK6410A GPIO驱动的应用
    某客户管理系统Oracle RAC节点异常重启问题详细分析记录
    适用于LLM的代理搜索增强事实评估器 (Search-Augmented Factuality Evaluator,SAFE)
    Linux下等待队列、定时器、中断综合应用——按键控制LED
    【服务器数据恢复】HP StorageWorks系列服务器RAID5两块盘离线的数据恢复
    Postgresql的一个bug_涉及归档和pg_wal
    Visual Paradigm 如何在大型项目中实现最佳性能
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java旅游足迹分享系统19i58
    Echarts的配置解释 标题组件(title)
  • 原文地址:https://blog.csdn.net/m0_73111651/article/details/134478621
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号