关于java的多线程初识

关于java的多线程初识

我们从今天开始,正式学习java的多线程,我们在前面的文章中学习到了java的基础, 但是距离我们工作实战还差的很远,我们学习好了基础,以后的文章会逐步的深入,去讲解各种前端框架,微服务等等😀

线程简介

  • 任务
  • 进程
  • 线程
  • 多线程

一、任务

  • 多任务

比如我们过年吃饭,是一个”任务“,但是吃饭的时候我们玩手机抢红包,就是第二个“任务”,边吃饭边玩手机,就是一个人同时做两个任务,又比如,我们在开车的时候打电话,也是在进行多任务。

现实生活中太多这样同时做多种事的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只是做了一件事。

二、多线程

  • 多线程:java.thread

在我们的生活中,多线程非常的常见,比如说我们经常玩的王者荣耀,英雄联盟这类游戏,和同学一起开黑,可以看到在一个画面里面,但是又做着不同的事情,又比如微信聊天,我们在聊天的时候,可以同时发消息。

我们在小时候玩过暴力摩托的游戏,只有一条车道,所以只能通过暴力的方式走到终点🤣

但是慢慢的车多了,一条路严重堵塞,效率太低了,所以为了提升效率,也为了充分利用道路,增加了一条车道。

比如程序开发中的购票系统,如果只能按照一个人一个人去走,那效率会极低,所以考虑到并发多线程的方式去解决开发中不少低效率的点,让程序更加贴切生活,创造价值。

三、普通方法调用和多线程

在这里插入图片描述

四、程序的进程和线程

  • Process:进程

  • Thread:线程

  • 在操作系统中,运行的程序就是进程,比如微信,播放器,游戏,开发工具等等。

我们在看用播放软件看电影的时候,会听到声音,看到图像,看到字幕,这个播放软件是一个进程,里面这些东西是很多线程。

  • 一个进程可以有多个线程,就像弹幕,图像等。

  • 程序,是指令和数据的有序集合,本身没有运行的含义,是一个静态的概念。

  • 进程,是执行程序的一次执行过程,它是一个动态的概念,是系统资源分配的单位。

  • 线程,是一个进程中可以包含若干个,一个进程中至少有一个线程,不然没有存在的意义,线程是CPU调度和执行的单位。

  • 注意:很多多线程是模拟出来的,真正的多线程是指有多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu的情况下,在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错局。

五、本章核心概念

  • 线程就是独立的执行路径。
  • 在程序运行时,即使没有自己创建线程,后台也会有多个线程,主线程:main,垃圾回收线程:gc
  • main()称之为主线程,为系统的入口用于执行整个程序。
  • 在一个进程中,如果开辟了多个线程线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为的干预的。
  • 对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制。
  • 线程会带来额外的开销,如cpu调度时间,并发控制开销。
  • 每个线程在自己的工作内存交互,内存控制不当会造成数据不一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/384317.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

同余数论性质

同余概念 当 a%m b%m,说明a和b同余,写作若 a≡b(mod m) 性质 衍生出几条性质 1.m | abs(a-b),即|a-b|是m的倍数。(注意,0是任何数的倍数) 2.当a≡b(mod m),c≡d(mod m), 有ac…

IDEA Ultimate下载(采用JetBrain学生认证)

IDEA Ultimate版本下载 Ulitmate是无限制版(解锁所有插件,正版需要付费。学生可以免费申请许可)Community是开源社区版本(部分插件不提供使用,比如Tomcat插件。免费) 我们将通过学生认证获取免费版。 Je…

【vue3学习笔记】shallowReactive与shallowRef;readOnly与shallowReadOnly;toRaw与markRaw

尚硅谷Vue2.0Vue3.0全套教程丨vuejs从入门到精通 课程 P158节 《shallowReactive与shallowRef》笔记: reactive()与shallowReactive():reactive()处理后的数据是响应式的,对象内嵌套的深层结构全部是响应式的。shallowReactive()处理后的数据…

闭环控制系统手自动策略(车辆定速巡航应用)

闭环控制系统的手自动策略并不会完全一样,不同的行业,基于不同的规范和安全考虑给出的手自动策略是不一样的,这里我们介绍汽车行业定速巡航应用。 PID闭环控制系统手自动切换的相关文章,还可以查看下面链接: 无扰切换…

2013-2022年上市公司迪博内部控制指数、内部控制分项指数数据

2013-2022年上市公司迪博内部控制指数、分项指数数据 1、时间:2013-2022年 2、范围:上市公司 3、指标:证券代码、证券简称、辖区、证监会行业、申万行业、内部控制指数、战略层级指数、经营层级指数、报告可靠指数、合法合规指数、资产安全…

基于Locust实现MQTT协议服务的压测脚本

一、背景简介 业务背景大概介绍一下,就是按照国标规定,车辆需要上传一些指定的数据到ZF的指定平台,同时车辆也会把数据传到企业云端服务上,于是乎就产生了一些性能需求。 目前我们只是先简单的进行了一个性能场景的测试&#xf…

C++进阶(十五)C++的类型转换

📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、C语言中的类型转换二、为什么C需要四种类型转换三、C强制类型转换1、static_cast2、reint…

中国电子学会2019年12月份青少年软件编程Scratch图形化等级考试试卷三级真题(选择题、判断题)

一、单选题(共 25 题,每题 2 分,共 50 分) 1.怎样修改图章的颜色?( ) A. 只需要一个数字来设置颜色 B. 设置 RGB 的值 C. 在画笔中设置颜色、饱和度、亮度 D. 在外观中设置或修改角色颜色特效 2.以下程序的执…

2024年Midjourney 付费订阅流程 | Midjourney 各版本介绍,使用虚拟信用卡支付买Midjourney流程指南

1.Midjourney介绍 Midjourney 是一款备受欢迎的人工智能生成图像工具,它可以通过输入文字描述,自动生成精美的图像。与许多其他图像生成工具不同,Midjourney 不需要安装任何软件,也不受个人电脑性能的限制,因为它运行…

计算机毕业设计SSM基于的冷链食品物流信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: vue mybatis Maven mysql5.7或8.0等等组成,B…

微信小程序(四十二)wechat-http拦截器

注释很详细,直接上代码 上一篇 新增内容: 1.wechat-http请求的封装 2.wechat-http请求的拦截器的用法演示 源码: utils/http.js import http from "wechat-http"//设置全局默认请求地址 http.baseURL "https://live-api.ith…

【学网攻】 第(26)节 -- 综合网络实验一

系列文章目录 目录 系列文章目录 文章目录 前言 一、综合实验 二、实验 1.引入 实验目标 实验设备 实验拓扑图 实验配置 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口【学网攻】 第(4)节…

C++ //练习 6.5 编写一个函数输出其实参的绝对值。

C Primer(第5版) 练习 6.5 练习 6.5 编写一个函数输出其实参的绝对值。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /*************************************************************************&…

linux优化空间完全卸载mysql——centos7.9

文章目录 ⭐前言⭐linux命令使用💖 基础命令💖 内存优化💖 完全删除mysql ⭐结束 ⭐前言 大家好,我是yma16,本文分享 linux优化空间&完全卸载mysql——centos7.9。 linux内存分配 在Linux中,内存分配是…

安装faiss环境教程

文章目录 打开环境安装faiss环境检查已安装的环境切换环境至faiss 打开环境 source activate # 打开环境安装faiss环境 conda create -n faiss_env # 安装faiss环境检查已安装的环境 conda info --envs # 检查已安装的环境切换环境至faiss conda a…

【数据结构】13:表达式转换(中缀表达式转成后缀表达式)

思想: 从头到尾依次读取中缀表达式里的每个对象,对不同对象按照不同的情况处理。 如果遇到空格,跳过如果遇到运算数字,直接输出如果遇到左括号,压栈如果遇到右括号,表示括号里的中缀表达式已经扫描完毕&a…

AlmaLinux右键菜单(基于GNOME桌面)

文章目录 前言前提说明在文件上右键在文件夹上右键 前言 在使用VSCode的过程中,AlmaLinux没能像Windows一样在右键菜单上显示打开方式,所以找了一下解决方案,罗列出来 前提说明 虽然说无论是media还是StackOverflow都推荐使用这条命令&…

Impala-架构与设计

架构与设计 一、背景和起源二、框架概述1.设计特点2.框架优点3.框架限制 三、架构图1.Impala Daemon2.Statestore3.Catalog 四、Impala查询流程1.发起查询2.生成执行计划3.分配任务4.交换中间数据5.汇集结果6.返回结果 总结参考链接 一、背景和起源 现有的大数据查询分析工具H…

数据结构:并查集讲解

并查集 1.并查集原理2.并查集实现3.并查集应用4.并查集的路径压缩 1.并查集原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后按一定的规律将归于同一组元素的集合合并。在此过程中…

华为 huawei 交换机 接口 MAC 地址学习限制接入用户数量 配置示例

目录 组网需求: 配置思路: 操作步骤: 配置文件: 组网需求: 如 图 2-14 所示,用户网络 1 和用户网络 2 通过 LSW 与 Switch 相连, Switch 连接 LSW 的接口为GE0/0/1 。用户网络 1 和用户网络 2 分别属于 VLAN10 和 V…