码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JAVASE 第二十五天


    系统编程 - 多线程编程

    多任务:
        多任务多用户操作


        Unix操作:
            多任务多用户操作
            现代操作系统的


    注意:    在多核CPU诞生之前(单核CPU下),所有的多任务本质都是一种伪多任务。
        多核CPU下,就可以实现真正意义上的多任务!!


        并发:多个任务抢占少量资源
        并行:

    时间片:每一个任务每次在CPU中占有的时间
    优先级别调度:

    注意:操作底层的多任务使用的就是时间片轮换机制,配合优先级别调度完成。

    多任务:
        多进程编程
        多线程编程
        协程编程


    进程:process
        操作系统的基本单位
        直接申请独立的内存
        
    线程:thread
        依赖于进程
        

    协程:coroutine

    总结作业:

    多线程编程:
        
    java自身提供了四种创建多线程的方案:
        1、继承Thread
        2、实现Runable接口
        3、实现Callable接口
        4、线程池实现多线程


        
        
    继承Thread
    实现Runable接口
    内容回顾:
        1、IDE工具使用    eclipse    Intellij IDEA
        2、多任务
            
        3、java实现多线程
            继承Thread
            实现Runnable接口
        

    实现Callable接口:
        
        

    线程对象的一些常见方法:

        getName
        getId
        getPriority
        getState
        interrupt
        stop
        isAlive
        join

    Thread静态方法:
        

    继承Thread和实现Runable有区别:

        继承Thread的线程对象之间不能共享数据

        实现Runable线程对象,如果使用不同的Thread对象启动同一个Runable线程对象,则会共享内存数据,
        这种现象,可能会出现线程安全问题。


    线程安全问题:
        

    如何解决线程安全问题:
        通过加锁解决    


        
    synchronized关键字
        java提供了同步锁,synchronized,该锁有三种使用方式
            1、同步块
            2、将方法加锁
            3、将静态方法加锁

        该锁必须使用一个对象作为钥匙!!!
     

  • 相关阅读:
    Axios 前后端交互工具学习
    【JVM】内存快照分析工具Jprofiler
    多维时序 | MATLAB实现SSA-CNN-BiLSTM-Attention多变量时间序列预测(SE注意力机制)
    计算机毕业设计Java校园教育服务平台(源码+系统+mysql数据库+Lw文档)
    第十章 单调栈 part03 84. 柱状图中最大的矩形
    锁定云栖大会!共同见证阿里云大数据+AI产品年度重磅发布及创新
    python中的单例模型:(详细的单例可以去主页c++中的单例模型)
    水电站与数据可视化:洞察未来能源趋势的窗口
    Adobe Acrobat for mac 缺少字体文件Microsoft Ya Hei
    Ubuntu18.04 CoppeliaSim Edu 安装教程 (2022年11月)
  • 原文地址:https://blog.csdn.net/m0_57785152/article/details/126450251
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    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号