多线程并发编程-线程篇

news/2024/11/26 5:31:29/

线程基础

什么是线程?

  • 系统中的一个程序就是一个进程,每个进程中的最基本的执行单位,执行路径就是线程,线程是轻量化的进程。

什么是纤程?

  • 绿色线程,由用户自己进行管理的而不是系统进行管理的,我理解就是一个进程里面可以有多线程,一个线程里面有多进程(go里面叫协程)

什么是线程切换(上下文切换)?

  • 线程是按照CPU分的时间片进行执行的,如果线程A用完了CPU的时间片,那么CPU就会去执行另外的线程,那么线程A就要保存自己的执行状态以便在进行加载运行,保存以及再加载这个过程就叫线程切换

什么是多线程?

  • 简单理解就是在多CPU时代可以使用多线程并行来提高CPU的利用率,以及提高系统性能

为什么使用多线程

  • 从计算机底层来说:线程是轻量级的进程,是程序执行的最小单位,现成之间的切换和调度远远小于进程,另外多CPU意味着多线程可以并行执行,减少线程切换的成本
  • 从当代互联网来说:现在的系统动不动就要求百万级千万级的并发量,而多线程正式实现高并发的基础,利用好多线程机制可以大大提高系统整体的并发能力以及性能

创建线程的方式

  • 创建线程的五种方式

线程的生命周期

线程生命周期图

线程优雅中断

  • Thread.interrupt方法源码位置

  • Thread.interrupted()静态方法:查询当前线程是否被打断过,并重置打断标志源码位置翻译

  • isInterrupted方法:判断是否中断源码位置

  • 判断是否设置了中断标志位然后完成线程终端操作,上述的标志位只是进行设置而已,不会真正停止线程


http://www.ppmy.cn/news/49716.html

相关文章

GoNote第六章 GoFrame 接入SSE

GoNote第六章 GoFrame 接入SSE 什么是SSE(Server Sent Events) 引用维基百科: Server-Sent Events (SSE) is a server push technology enabling a client to receive automatic updates from a server via HTTP connection. The Server-Sent Events EventSource …

TryHackMe-Jack(boot2root)

Jack 破坏运行Wordpress的Web服务器,获得低特权用户,并使用Python模块将您的权限升级到root。 端口扫描 循例nmap web枚举 robots.txt wpscan枚举user wpscan直接爆 得到wendy的密码 直接登后台 根据题目提示,利用user role editor帮助我们…

第三十四章 配置镜像 - 在镜像中激活日志加密

文章目录 第三十四章 配置镜像 - 在镜像中激活日志加密在镜像中激活日志加密 第三十四章 配置镜像 - 在镜像中激活日志加密 在镜像中激活日志加密 在镜像成员上激活日志加密时,请记住三个重要的注意事项: 不能在故障转移成员和 DR 异步上激活日志文件加…

月获2万份简历,硕士占比超70%!中欧基金如何破圈打造雇主品牌?

成立于2006年的中欧基金,作为国内首批实现员工持股的基金公司,坚持以人为本,相信优秀的业绩要靠优秀的人才来创造。 因此,中欧基金在完善公司治理机制基础上,实现不仅有敢打硬仗能打胜仗的将才,还有更多不…

3、Typescript中补充的六个类型

1、元组 元组可以看做是数组的拓展,它表示已知元素数量和类型的数组。确切地说,是已知数组中每一个位置上的元素的 类型,来看例子: let tuple: [string, number, boolean]; tuple ["a", 2, false]; tuple [2, "…

PDD滑块分析

文章目录 1.流程分析2.关键点分析3.结果展示 声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 欢迎大佬加群一起交流哇( Q群:985475126…

ROS——Teb算法的优化

一、简介 “TEB”全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification),从而优化机器人的运动轨迹,属于局部路径规划。 关于eletic band(橡…

MyBatis详解(2)

8、自定义映射resultMap 8.1、resultMap处理字段和属性的映射关系 若字段名和实体类中的属性名不一致&#xff0c;则可以通过resultMap设置自定义映射 <!--resultMap&#xff1a;设置自定义映射属性&#xff1a;id&#xff1a;表示自定义映射的唯一标识type&#xff1a;查询…