Java EE:多线程 —— 什么是线程,线程与进程的区别

1、线程是什么

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

举例说明:

        假设一家公司要去银行办业务,既要进行财务转账,又要进行福利发放,还得进行缴纳社保。 

        如果只有 张三 一个职员,无法一个人处理这么多业务,会耗费非常长的时间。为了业务能更快更好的办理,张三 叫来了两个好朋友 李四 王五,三个人分别负责一个事情,这样子就可以在同一时间更好的处理多项业务。自此就有了三个执行流共同完成任务,但他们本质上都是为了办理同一家公司的业务。  

        此时,我们就把这种情况称为多线程,三个人分别是一个线程。将一个大任务分解成不同的小任务,交给不同的执行流执行。其中 张三 主线程,因为 李四 王五 都是张三叫来的。

2、为什么要有线程

首先, “并发编程” 成为 “刚需”。

·单核 CPU 的发展遇到了瓶颈,想要提高算力,就需要多核 CPU。 而并发编程能更充分利      用多核 CPU 资源。

·有些任务场景需要 “等待IO” ,为了让 等待IO 的时间能去做一些其他工作,也需要用到并发    编程。

其次,虽然多进程也能实现 并发编程,但是线程比进程更轻量

·创建线程比创建进程更快

·销毁线程比销毁进程更快

·调度线程比调度进程更快

3、线程和进程的区别

·进程是包含线程的。每个进程至少有一个线程存在,即主线程

·进程和进程之间不共享内存空间。同一个进程的线程之间共享一个内存空间

·进程是系统分配资源的最小单位,线程是系统调度的最小单位

·一个进程挂了不会影响到其他进程,但是一个线程挂了,可能把进程中的其他线程一起带走

4、Java中的线程 和 操作系统线程 的关系

        线程是操作系统中的概念。操作系统内核实现了线程这样的机制,并且对用户层提供了一些API 供用户使用。(例如 Linux 中的 pthread 库)

        Java 标准库中的 Thread 类可以视为是对操作系统提供的 API 进行了进一步的抽象和封装。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Collection与数据结构链表与LinkedList(三):链表精选OJ例题(下)

1. 分割链表 OJ链接 class Solution {public ListNode partition(ListNode head, int x) {if(head null){return null;//空链表的情况}ListNode cur head;ListNode formerhead null;ListNode formerend null;ListNode latterhead null;ListNode latterend null;//定义…

[源码] Android 上的一些快捷方式,如通知、快捷方式等

目录 一、通知0. 配置权限1. 测试发送通知代码2. 打开通知设置界面代码3. 前台服务创建常驻通知 二、快捷方式1. 测试添加动态快捷方式代码 三、开发者图块四、桌面小部件 基于jetpack compose 框架的使用代码 一、通知 参见 官方文档 0. 配置权限 <uses-permission andr…

Android仿高德首页三段式滑动

最近发现很多app都使用了三段式滑动&#xff0c;比如说高德的首页和某宝等物流信息都是使用的三段式滑动方式&#xff0c;谷歌其实给了我们很好的2段式滑动&#xff0c;就是BottomSheet&#xff0c;所以这次我也是在这个原理基础上做了一个小小的修改来实现我们今天想要的效果。…

刷题之动态规划-路径问题

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;开始刷动态规划的题目了&#xff0c;要特别注意初始化的时候给什么值。 动态规划5个步骤 状态表示 &#xff1a;dp数组中每一个下标对应值的含义是什么->dp[i]表示什么状态转移方程&#xff1a; dp[i] 等于什么1 和 2 是…

NRF52832修改OTA升级时的bootloader蓝牙MAC

NRF52832在OTA升级时&#xff0c;修改了APP的蓝牙MAC会导致无法升级&#xff0c;原因是OTA程序的蓝牙MAC没有被修改所以手机扫描蓝牙时无法连接 解决办法 在bootloader的程序里面加入修改蓝牙mac地址的代码实现原理&#xff1a; 在bootloader蓝牙广播开启之前修改蓝牙mac 通…

轻松编辑照片,无需下载!2024年最受推荐的在线PS替代工具

设计领域&#xff0c;Adobe Photoshop无疑是最受欢迎的软件之一。然而&#xff0c;PS对初学者来说可能很复杂&#xff0c;需要安装在计算机上&#xff0c;更不用说相对昂贵的价格了。这些因素使得PS在线网页替代设计工具越来越受欢迎。今天&#xff0c;我们将为您介绍一些优秀的…

[Leetcode笔记] 滑动窗口相关

前言 今天做leetcode的时候遇到一道滑动窗口相关的题目&#xff0c;题目具体内容如下&#xff1a; 思路 这道题很显然需要用到滑动窗口&#xff0c;肯定不是让你傻乎乎一遍一遍去遍历数组的内容然后遍历尝试 流程&#xff1a; 先算数组的总大小。使用while计算滑动窗口数…

第十二届蓝桥杯JavaA组省赛真题 - 相乘

解题思路&#xff1a; 暴力 public class Main {public static void main(String[] args) {for (long i 1; i < 1000000007; i) {if (i * 2021 % 1000000007 999999999) System.out.print(i);else System.out.print(0);}} }

Linux线程实现

前言 前面提到进程和线程的区别&#xff0c;进程是资源分配的基本单位&#xff0c;线程是程序执行的基本单位。线程都属于某个进程&#xff0c;而同一个进程下的不同线程分别有共享和独享的数据&#xff0c;这里再列举一下&#xff1a; 同一进程内的所有线程除了共享全局变量…

Python位操作指南:从基础到应用

前言 位操作允许直接在二进制层面上直接操作整数的各个位&#xff0c;使用位操作解决问题能降低很多时间和空间复杂度&#xff0c;以很低的成本很优雅的解决问题&#xff0c;不过有着一定的学习成本。 正文 负数和二进制表示 知识补充&#xff1a; 在计算机中&#xff0c;…

LeetCode-统计完全连通分量的数量

题目要求&#xff1a; 给你一个整数 n 。现有一个包含 n 个顶点的 无向 图&#xff0c;顶点按从 0 到 n - 1 编号。给你一个二维整数数组 edges 其中 edges[i] [ai, bi] 表示顶点 ai 和 bi 之间存在一条 无向 边。 返回图中 完全连通分量 的数量。 如果在子图中任意两个顶点…

ChatGPT引领量化交易革命:AI在金融创新的浪潮中崭露头角

随着科技的飞速发展,金融领域正迎来一场前所未有的创新浪潮。在这场变革中,ChatGPT凭借其卓越的自然语言处理能力和深度学习能力,正引领量化交易进入新时代。 量化交易,作为现代金融领域的一种重要交易方式,依赖于复杂的数学模型和大量的历史数据来制定交易策略。然而,传…

揭秘速成软件书:彩虹之下的真相

在这个信息爆炸的时代&#xff0c;我们常常被诱惑性的标题所吸引&#xff1a;“三天掌握Python编程”&#xff0c;“一周精通Photoshop”&#xff0c;书架上堆满了各种各样的速成指南&#xff0c;这些声称能迅速提升技能的书籍&#xff0c;真的能做到它们所承诺的吗&#xff1f…

C++与C语言

C之所以是C&#xff0c;和面向过程的C语言相比&#xff0c;它加了一个类&#xff0c;还有一个是模板。 引入 C语言这种面向过程的编译语言可以将待解的问题分解成若干个子问题&#xff0c;面向对象程序设计则是建立在结构化程序设计方法的基础上&#xff0c;完全避免了结构化程…

前任在代码里下毒,支付下单居然没加幂等?

首先蜗牛和大家从以下几个方面好好剖析一下接口幂等吧。 什么是接口幂等 比较专业的术语&#xff1a;其任意多次执行所产生的影响均与第一次执行的影响相同。 也就是多次调用的情况下&#xff0c;接口最终得到的结果是一致的。 那么为什么需要幂等呢&#xff1f; 那么哪些接…

中科院自动化所实习总结(完)

实习单位 中国科学院自动化所 工作内容 项目涉密&#xff0c;不便介绍 负责内容 负责完善文档&#xff0c;画流程图&#xff0c;UML类图之类的写小模块的代码 实习感悟 大概的整个过程 其实在这段实习中&#xff0c;我得到的最多的并不是技术上的成长&#xff0c;而是业…

数据结构03:栈、队列和数组 队习题01[C++]

考研笔记整理~&#x1f95d;&#x1f95d; 之前的博文链接在此&#xff1a;数据结构03&#xff1a;栈、队列和数组_-CSDN博客~&#x1f95d;&#x1f95d; 本篇作为链表的代码补充&#xff0c;供小伙伴们参考~&#x1f95d;&#x1f95d; 第1版&#xff1a;王道书的课后习题…

实战-后台管理系统SQL注入漏洞

对于edu来说&#xff0c;是新人挖洞较好的平台&#xff0c;本次记录一次走运的捡漏0x01 前景 在进行fofa盲打站点的时候&#xff0c;来到了一个后台管理处看到集市二字&#xff0c;应该是edu站点 确认目标身份&#xff08;使用的quake进行然后去ipc备案查询&#xff09; 网…

Qt实现Kermit协议(一)

1 概述 Kermit文件运输协议提供了一条从大型计算机下载文件到微机的途径。它已被用于进行公用数据传输。 其特性如下: Kermit文件运输协议是一个半双工的通信协议。它支持7位ASCII字符。数据以可多达96字节长度的可变长度的分组形式传输。对每个被传送分组需要一个确认。Kerm…

LeetCode刷题笔记之hot 100(二)

1. 322【零钱兑换】- 动态规划 题目&#xff1a; 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c;返回…