首页 > 编程语言 >Java多线程(一):多线程基础

Java多线程(一):多线程基础

时间:2024-06-11 16:03:55浏览次数:26  
标签:执行 Java 基础 式调度 线程 进程 多线程 CPU

多线程技术概述

线程与进程

进程:

一个内存中运行的应用程序

每个进程有一个独立的内存空间

线程

进程中的一个执行路径

· 共享一个内存空间
· 线程间自由切换,并发执行
· 一个进程至少有一个线程
· 线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干执行路径又可以划分成若干个线程

线程调度

分时调度

所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间

抢占式调度

优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),

Java使用的为抢占式调度。

· CPU使用抢占式调度模式在多个线程间进行着高速的切换
· 对于CPU的一个核心而言,某个时刻只能执行一个线程
· 多线程程序并不能提高程序的运行速度,但能够提高程序运行效率,让CPU的== 使用率更高==。
· CPU的在多个线程间切换速度相对人类感觉要快,看上去就是在同一时刻运行。

同步与异步

同步:排队执行

排队执行,效率低但安全

异步:同时执行

同时执行,效率高但不安全

注意区分效率而非速度
理解同步和异步对于多线程编程非常重要,是线程安全的基础

并发和并行

并发

指两个或多个事件在同一时间内发生

并行

指两个或多个事件在同一时刻发生

写在最后

个人比较喜欢短而集中的知识点,所以博文数也以短篇形式发布,但会相对系统。

本博文为记录且仅为记录学习,不作商业用途。其中部分内容基于海贼宝藏(https://www.haizeix.com/)课程,笔者仅为加深印象和系统性以笔记形式呈现,若有侵权请联系作者删除。

标签:执行,Java,基础,式调度,线程,进程,多线程,CPU
From: https://blog.csdn.net/m0_67314592/article/details/139567338

相关文章

  • 初阶java学习2
    Notepad软件高级记事本有行号,而且Java中的一些特殊单词会高亮显示方便我们对报错进行修改;常见的高级记事本Editplus、Notepad++、Sublime(前端程序员常用)等Notepad++下载方式百度网盘:百度网盘请输入提取码提取码:e36o编码选择ANSI可以让我们输出中文;JAVA的三......
  • 基于Vue+Node.js的高校学业预警系统+10551(免费领源码)可做计算机毕业设计JAVA、PHP、爬
    NodeJS高校学业预警系统摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,教育行业当然也不能排除在外。高校学业预警系统是以实际运用为开发背景,运用软件工程开发方法,采用Node.JS技术构建的一个管理系统。......
  • JavaSE中的IO(输入/输出)字节流字符流
    JavaSE中的IO(输入/输出)知识是一个广泛的领域,它涵盖了如何在Java程序中进行数据的读取和写入。以下是对JavaSE中IO知识的一个清晰归纳:一、基础知识流(Stream)的概念流是一组有顺序的、有起点和终点的字节集合,用于数据传输。Java的I/O流提供了读写数据的标准方法。Java的I/O......
  • 网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇你就是网络安全高手了。
    关于我我算是“入行”不久的一个新人安全工作者,为什么是引号呢,因为我是个“半个野路子”出身。早在13年的时候,我在初中时期就已经在90sec、wooyun等社区一直学习、报告漏洞。后来由于升学的压力,我逐渐淡出了安全圈子,也没有继续学习技术。也因为这个原因,高考选择专业时,对......
  • 53道Java基础高频题整理(附答案背诵版)
    Java为什么被称为平台无关性语言?Java被称为平台无关性语言,是因为一旦Java代码被编译成字节码,这些字节码就可以在任何安装了Java虚拟机(JVM)的设备上运行,无论这个设备使用的是什么操作系统。这就是“一次编写,到处运行”的理念。Java的这种平台无关性主要得益于Java虚拟机(JVM)......
  • GIS基础制图之地形图
    数据:地理空间数据云(http://www.gscloud.cn/)下一张北京地区DEM(30m),统一用这一张来做。晶格工具运行窗口不贴了,因为参数设置基本上都是默认没有什么要改的1、「3DAnalyst」—「转换」—「由栅格转出」—「栅格转TIN」2、「3DAnalyst」—「转换」—「由TIN转出」—......
  • 针对PDF文档:印章、数字签名、编辑保护、PDF/A的Java工具类
    背景  本文是基于Java语言,引入POI从而提供将富文本编辑器内的html内容转换为docx的方式。代码  引入pom坐标<dependency><groupId>cn.net.pap</groupId><artifactId>pap4j-common-pdf</artifactId><version>0.0.1</version></......
  • AIGC绘画设计基础教学:一篇文章看懂AIGC基本概念
    在这个全新的时代,AIGC(ArtificialIntelligenceGenerativeContent,即人工智能生成内容)正在重新定义内容创作生态。当机器可以理解语言,艺术重新被定义,创意可以批量输出时,广告营销行业将迎来一场巨大的生产变革。本期内容中,我们将梳理24个AI的基础概念,带领大家全面了解AIGC。......
  • AIGC绘画设计基础:全网最全Midjourney出图关键词咒语汇总
    Midjourney是第一个快速生成AI制图并开放予大众申请使用的平台。Midjourney生成的作品往往带有电脑生成的痕迹,比较不会被当成假新闻素材,但对色情、血腥、暴力创作题材的审核还不够精准。例如,输入“一棵长着立方体形桃子的大树”,就会生成四张不同图像供选择。一、什么是midjo......
  • Java 开发面试题精选:Mysql 一篇全搞定
    前言在高级Java开发工程师的面试中,MySQL作为常见的数据库技术,其掌握程度往往是评估候选人综合能力的重要组成部分。在这篇文章中,我精选了一些最可能被问到的与MySQL相关的面试题目,这些题目可以全面考察候选人的理论知识、实战经验和问题解决能力,不管你是准备求职的小伙伴,还是......