java技术圈 为您找到相关结果 91

1.5w字,30图带你彻底掌握 AQS!

点击上方"云时代架构", 右上角选择“设为星标”精品技术文章准时送上!前言AQS( AbstractQueuedSynchronizer )是一个用来构建锁和同步器(所谓同步,是指线程之间的通信、协作)的框架,Lock 包中的各种锁(如常见的 ReentrantLock, ReadWriteLock), concurrent 包中的各种同步器(如 CountDownLatch, Semaphore, CyclicBarrier)都是基于 AQS 来构建,所以理解 AQS 的实现原理至关重要,AQS 也是面试中区分侯选人的常见考点,我们务必要掌握,本文将用循序渐近地介绍 AQS,相信大家看完一定有收获。文章目录如下锁原理 - 信号量 vs 管程AQS 实现原理AQS 源码剖析如何利用 AQS ...阅读全文

博文 2021-06-16 02:52:41 墨天轮

TreeMap原理实现及常用方法 - 工匠初心

目录一. TreeMap概述二. 红黑树回顾三. TreeMap构造四. put方法五. get 方法六. remove方法七. 遍历八. 总结 前面我们分别讲了Map接口的两个实现类HashMap和LinkedHashMap,本章我们讲一下Map接口另一个重要的实现类TreeMap,TreeMap或许不如HashMap那么常用,但存在即合理,它也有自己的应用场景,TreeMap可以实现元素的自动排序。 一. TreeMap概述 TreeMap存储K-V键值对,通过红黑树(R-B tree)实现; TreeMap继承了NavigableMap接口,NavigableMap接口继承了SortedMap接口,可支持一系列的导航定位以及导航操作的方法,当然只是提供了接口,需要TreeMap自己去实...阅读全文

博文 2021-08-20 08:54:35 博客园

startx 及xinit 介绍(经典)_小宋的博客

X-server管理鼠标、键盘、显卡、显示器 X-client处理程序的运行 ---------------------------------------------------------------------------------------------------- WM管理窗口:移动、变型、关闭、装饰...... ---------------------------------------------------------------------------------------------------- DE桌面环境:窗口管理器+面板+文件管理器+配套软件...... ---------------------------------------------------...阅读全文

博文 2020-07-13 02:27:56 CSDN博客_xinit

java 的init方法与clinit方法 - 大哥超帅

jvm加载过程 加载=》验证=》准备=》解析=》初始化=》使用=》卸载 一 clinit初始化/静态方法 类型初始化方法主要是对static变量进行初始化操作,对static域和static代码块初始化的逻辑全部封装在方法中。 java.lang.Class.forName(String name, boolean initialize,ClassLoader loader),其中第二个参数就是是否需要初始化。 Java类型初始化过程中对static变量的初始化操作依赖于static域和static代码块的前后关系,static域与static代码块声明的位置关系会导致java编译器生成方法字节码。类型的初始化方法只在该类型被加载时才执行,且只...阅读全文

博文 2022-03-31 07:03:19 博客园

正则表达式(括号)、[中括号]、{大括号}的区别小结_Kou_Hi的博客

正则表达式的() [] {}有不同的意思。 () 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。 (\s*)表示连续空格的字符串。 []是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。 {}一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s{1,3}表示匹配一到三个空格。 (0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。 [0-9]{0,9} 表示长度为 0 到 9 的数字字符串。 ——————————————————————————————————————————————...阅读全文

博文 2022-07-21 03:54:14 CSDN博客_正则括号

在Java中谈尾递归--尾递归和垃圾回收的比较 - 赛艇队长

我不是故意在JAVA中谈尾递归的,因为在JAVA中谈尾递归真的是要绕好几个弯,只是我确实只有JAVA学得比较好,虽然确实C是在学校学过还考了90+,真学得没自学的JAVA好 不过也是因为要绕几个弯,所以才会有有意思的东西可写,另外还有我发现把尾递归如果跟JAVA中的GC比对一下,也颇有一些妙处(发现还没有人特地比较过) (不过后来边写边整理思路,写出来又是另一个样子了) 转载请注明:博客园-阁刚广志,地址:http://www.cnblogs.com/bellkosmos/p/5280619.html 一、首先我们讲讲递归 递归的本质是,某个方法中调用了自身。本质还是调用一个方法,只是这个方法正好是自身而已 递归因为是在自身中调用自身,所以会带来以下三个显著特点: 调用的是同一个方法 因为1...阅读全文

博文 2022-07-27 06:09:23 博客园

shell脚本中各种括号的区别以及用法 - 云+社区

最近学到了shell脚本编程,觉得脚本中的不同括号有不同的用处,以及有些括号的格式也有特殊要求,下面我就总结一下各种括号的用法。一、小括号();双小括号(()) 1、单小括号 () 1:命令替换。等同于`comm`,shell扫描一遍命令行,发现了$(comm)结构,便将$(comm)中的comm执行一次,得到其标准输出,再将此输出放到原来命令。# ls a b c # echo $(ls) a b c #echo `ls` a b c 2:用于初始化数组。如:array=(a b c d)[root@localhost ~]# array=(a b c d) [root@localhost ~]# declare -a declare -a array='([0]="a" [1]="b" ...阅读全文

博文 2022-04-06 11:50:13 腾讯云

CEP引擎Esper在入侵检测系统中的实践

目录 1、名词2、CEP引擎离线引擎实时引擎Esper:Fink CEP:Siddhi:3、逻辑架构图4、数据流图5、关于Storm中的数据分组6、实时Sigma引擎7、Esper规则模板8、Case Study9、结尾 1、名词 CEP(Complex Event Processing):复杂事件处理、复合事件处理 EPL(Event Processing Language):SQL-LIKE的事件处理语言,用于描述CEP任务 2、CEP引擎 离线引擎 待补充。 实时引擎 Esper: 优点:更新活跃,轻量级嵌入式引擎,规则验证方便,本地导入包后,即可运行。官方提供的文档和case study很全面,支持标准SQL语法,唯一编译型CEP引擎,吞吐量很大单机600W/S。 缺点:分布式需要自...阅读全文

博文 2022-12-22 01:38:33 Wayne's Blog

Java —— 运行时栈帧结构_凶残的程序员的博客

代码编译的结果从本地机器码转变为字节码,是存储格式发展的一小步,却是编程语言发展的一大步。 概述 栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构。它是虚拟机运行时数据区中的虚拟机栈的栈元素。 栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。 每一个方法从调用开始至执行完成的过程,都对应着一个栈帧在虚拟机里面从入栈到出栈的过程。 在编译程序代码的时候,栈帧中需要多大的局部变量表,多深的操作数栈都已经完全确定了。 因此一个栈帧需要分配多少内存,不会受到程序运行期变量数据的影响,而仅仅取决于具体的虚拟机实现。 在活动线程中,只有位于栈顶的栈帧才是有效的,称为当前栈帧,与这个栈帧相关联的方法称为当前方法。 局部变量表 我们在Java内存区域中在虚拟...阅读全文

博文 2022-03-23 12:54:48 CSDN博客_java 栈帧

【原创】JVM系列03 | Java栈—方法是如何调用的? - 云+社区

本文是何适 JVM 修仙系列第 3 篇,文末有本系列文章汇总。上一篇介绍 Java 虚拟机结构时讲到 Java 栈同 Java 方法的调用密切相关,那么这篇就来探究下 Java 栈到底和方法的调用有什么关系。Java 栈分如下几部分介绍:栈帧局部变量表操作数栈帧数据1. 栈帧 线程被创建的时候 Java 栈被创建,Java 栈中保存着栈帧。线程中方法被调用时,对应着一个栈帧被压入 Java 栈;方法返回时,对应的栈帧从 Java 栈中弹出;方法中抛出异常时,对应的栈帧也会将栈帧弹出。举例说明:方法 1 中调用方法 2,方法 2 中调用方法 3,方法 3 中调用方法 4,当执行到方法 4 时,栈内存结构如下图:举例模拟栈溢出:因为每次方法调用都会生成一个栈帧,当函数调用数量很大,生成的栈帧内存...阅读全文

博文 2022-03-23 12:54:54 腾讯云

深入理解Akka actor模型

Carl Hewitt 在1973年对Actor模型进行了如下定义:"Actor模型是一个把'Actor'作为并发计算的通用原语". Actor是异步驱动,可以并行和分布式部署及运行的最小颗粒。也就是说,它可以被分配,分布,调度到不同的CPU,不同的节点,乃至不同的时间片上运行,而不影响最终的结果。因此Actor在空间(分布式)和时间(异步驱动)上解耦的。而Akka是Lightbend(前身是Typesafe)公司在JVM上的Actor模型的实现。我们在了解actor模型之前,首先来了解actor模型主要是为了解决什么样的问题。Why modern systems need a new programming model在akka系统的官网上主要介绍了现代并发编程模型所遇到的问题,里面主要提...阅读全文

博文 2023-01-30 02:39:50 知乎

技术大牛成长课,从0到1带你手写一个数据库系统-完结11章

参考地址1:https://pan.baidu.com/s/1N-x48vz9Z0peZdjOU5Gh-g 提取码: nxts 参考地址2:https://share.weiyun.com/Tp6ewDIJ 密码:6crcwd 关于数据库系统的开发一直以来都是一个难点,它的流程复杂,涉及到的技术点众多,特别在部署这块尤为重要,今天就带着大家手把手去实现这样一个数据库系统项目。 我将从理论结合实际场景综合性落地,让大家轻松吃透核心技术底层原理。 首先是应用场景这块:复用到日常开发场景中,如何运用高级数据结构、算法和设计模式,如何正确面对高并发进行编程,如何进行数据库的优化,如何理解数据库的执行计划分析慢SQL的原因等; 其次是原理剖析: 深度剖析数据库系统原理,将数据库几十年发展精髓拆解并呈现...阅读全文

博文 2023-11-29 17:32:10 feilipu2023nui

logback 配置详解(一)logger与root概念及区别 - liftsail

目录 1、根节点包含的属性 2、根节点的子节点 2.1、设置上下文名称: 2.2、设置loger、root 正文 回到顶部 1、根节点包含的属性 scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 例如: 阅读全文

博文 2023-09-14 10:27:48 博客园

高性能队列——Disruptor

背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。目前,包括Apache Storm、Camel、Log4j 2在内的很多知名项目都应用了Disruptor以获取高性能。在美团技术团队它也有不少应用,有的项目架构借鉴了它的设计机制。本文从实战角度剖析了Disruptor的实现原理。需要特别指出的是,这里所说的队列是系统内部的内存队列,而不是Kafka这样的分布式队列...阅读全文

博文 2023-03-03 02:58:41 美团技术团队

PlantUML 快速入门(一) UML 类图_fundroid的博客

大家平日在写技术文档时,往往都有画 UML 图的需要,很多人使用 PrecessOn 或者 darw.io 等来绘制 UML ,勉强可用但是不够专业。这里为大家推荐一个专门画UML的工具: PlantUML 1. PlantUML PlantUML 诞生于 2009 年,知道的人多但是使用的人少。因为它使用特殊的 DSL 进行画图,相较与其他工具,PlantUML 的图不是“画”出来的而是“写”出来的。 虽然有一定学习成本,但是却可以画出更专业的UML图,而且文本格式也便于保存。本文总结 PlantUML 的基本用法,帮助大家快速入门。 安装环境 PlantUML 是一个 java 程序,所以有 JDK 就能跑。可以从官网直接下载 jar 文件执行,当然它也提供了 IDEA 和 VSCode...阅读全文

博文 2023-05-05 08:23:42 CSDN博客

[16章]慕课甄选-2024年Flutter零基础极速入门到进阶实战

![1.png](http://static.itsharecircle.com/240118/0c9fb1b0ac5cc04bf37865ad3a8aa31d.png) Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。 Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。 我将在本文中结合了最新版的Flutter、Dart、主流插件技术进行企业级项目开发,并融入了大量Flutter版本更新问题的解决方案,以及与H5混合开发和通信、多屏适配等高频技能,我会根据我在一线开发几年工作中积累的大量开发、避坑等经验传授给大家,让各位小伙伴在实际开发中能更好的运用Flutter技术。 首先我们先...阅读全文

博文 2024-01-18 11:52:14 udbmaidns

HBase 写吞吐场景资源消耗量化分析及优化-腾讯云开发者社区

一、概述HBase 是一个基于 Google BigTable 论文设计的高可靠性、高性能、可伸缩的分布式存储系统。 网上关于 HBase 的文章很多,官方文档介绍的也比较详细,本篇文章不介绍 HBase 基本的细节。本文从 HBase 写链路开始分析,然后针对少量随机读和海量随机写入场景入手,全方面量化分析各种资源的开销, 从而做到以下两点:在给定业务量级的情况下,预先评估好集群的合理规模在 HBase 的众多参数中,选择合理的配置组合二、HBase 写链路简要分析HBase 的写入链路基于 LSM(Log-Structured Merge-Tree), 基本思想是把用户的随机写入转化为两部分写入:Memstore 内存中的 Map, 保存随机的随机写入,待 memstore 达到一定量的...阅读全文

博文 2023-09-18 11:12:26 腾讯云

Netty+Nacos+Disruptor自研企业级API网关

## download:[Netty+Nacos+Disruptor自研企业级API网关](https://www.51xuebc.com/thread-566-1-1.html) 数据类型、变量和常量的使用 在计算机编程中,数据类型、变量和常量是非常重要的概念。它们可以帮助程序员更好地理解和处理数据,从而实现更加复杂的功能。本文将详细介绍这些概念及其使用。 数据类型 数据类型是指计算机中可用的不同种类的数据。在编程语言中,通常有多种基本数据类型,如整数、浮点数、布尔值、字符等。每种数据类型都有其自己的特定格式和范围。 例如,在Python编程语言中,有以下常见的数据类型: 整数(int):表示整数,如1、2、3等。 浮点数(float):表示小数,如1.5、3.14等。 布尔值(bool)...阅读全文

博文 2023-05-31 12:27:59 zxit666

Prometheus range query中的step参数

详细解释Prometheus range query中的step参数的作用。 Prometheus有两种query:instant query、range query。本文要讲的就是range query中的step参数。 range query是非常常见的一种query,看看它有哪些参数: query=: PromQL表达式。 start=: 时间范围的开始。 end=: 时间范围的结束。 step=: 查询解析度(query resolution)。 timeout=: 执行超时。这个参数是可选的。 在Promet...阅读全文

博文 2023-09-13 15:57:31 颇忒脱的技术博客

可以使用 Instant 代替 Date , LocalDateTime 代替 Calendar,DateTimeFormatter 代替 SimpleDateFormat - 周文豪

DateFormat 类是一个非线程安全的类。javadocs 文档里面提到:"Date formats是不能同步的。 我们建议为每个线程创建独立的日期格式。 如果多个线程同时访问一个日期格式,这需要在外部加上同步代码块。" 如何并发使用DateFormat类? 1. 同步 最简单的方法就是在做日期转换之前,为DateFormat对象加锁。这种方法使得一次只能让一个线程访问DateFormat对象,而其他线程只能等待。 public class DateUtil { private static final String MESSAGE_FORMAT = "MM-dd HH:mm:ss.ms"; private static final SimpleDateFormat format=new...阅读全文

博文 2023-05-22 08:13:46 博客园

Fastjson踩“坑”记录和“深度”学习_fastjson noneautotype

作者:陶征策 阿里国际站商家技术团队 Fastjson是阿里开发的Java语言编写的高性能JSON库,本文总结了Fastjson使用时的一些注意事项,并简单分析了Fastjson的底层工作原理,结合具体的验证代码以及跟Jackson的对比,希望能帮助大家充分理解Fastjson的使用。 一、为什么写这篇? Fastjson是阿里开发的Java语言编写的高性能JSON库,用于将数据在JSON和Java Object之间互相转换,提供两个主要接口JSON.toJSONString和JSON.parseObject来分别实现序列化和反序列化操作,使用起来很方便。 最近在升级一个老系统的缓存架构,使用Fastjson将对象序列化后存入缓存,并在client端反序列化后使用,以减少对后端hsf的请求次...阅读全文

博文 2024-03-18 10:49:12 CSDN博客

全国节能宣传周来了!天翼云电脑为绿色低碳注入科技动能!

5月13日至19日是2024年全国节能宣传周活动,今年的主题为“绿色转型,节能攻坚”。在当今全球气候变化日益严峻的背景下,节能减排、绿色发展已成为全球共识。中国电信天翼云积极履行央企社会责任担当,践行绿色低碳发展理念,创新节能技术,打造天翼云电脑等系列产品,赋能千行百业低碳绿色发展。天翼云电脑具备低能耗设计、零噪音运行以及绿色桌面环境等特性,通过弹性扩容、即开即用、支持多终端接入等能力,可以有效助力用户降本增效。作为云服务“国家队”,中国电信天翼云依托全国一体化算力网络布局、全网算力资源协同调度,能够实现云电脑业务的即取即用、统一调度,更好地满足用户需求,提供个性化的服务。凭借弹性扩容、节能减排、简化运维、绿色办公等四大优势,天翼云电脑为用户打造了安全便捷、绿色节能的云电脑使用体验。弹性扩容...阅读全文

数字先锋 | 打造生态环境监测新范式,天翼云助力青海“生态之窗”数字化升级!

随着我国经济实力高速增长和人民生活水平不断提高,加大生态环境保护力度,以良好的生态环境为高质量发展赋能已成为社会共识。在全球数字化浪潮下,运用数字技术建设高效协同的环境治理新形态,提升生态环境统揽全局、监测感知、预警预报、形势分析等能力,是推进生态环境治理能力现代化的主要途径。近年来,青海省生态环境厅以建设和完善生态环境监管、服务和决策为重点,依托5G、云计算、大数据等先进数字技术,全力推进生态环境网络建设和监测工作。以三江源生态保护为契机,青海省生态环境厅携手天翼云,助力“生态之窗”远程高清实时视频观测系统上云建设,为全域生态环境保护工作打造了一扇高效统一的“云上窗口”。​环境监管日趋精细“生态之窗”如何“再进一步”“生态之窗”是青海省生态环境厅根据全省重点生态保护区域自然景观分布,以及野...阅读全文

Django+Vue:Python Web全栈开发(基于Django4.1)

![1.png](http://static.itsharecircle.com/240105/de015aec364ad609b39e3dcef34aa519.png) Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。Django 是一个高级的 Python Web 框架,用于快速开发可维护和可扩展的 Web 应用程序。使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务。 第一步,安装 Python Windows 下安装 Python 非常简单,去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载...阅读全文

博文 2024-01-05 14:08:49 giadnbhaytgw

hbase shell 使用rowkey查询数据时,使用单引号无法查询到数据

在HBase Shell中,虽然主要使用的是HBase特有的一套命令语法,但因为Shell本身基于Java实现,所以其对单引号(')和双引号(")的处理遵循Java和大多数Unix/Linux shell的传统规则。在HBase Shell中,单引号和双引号主要用作字符串的界定符,它们的主要区别如下:单引号 ('')原样输出: 单引号内的一切字符均被视为字面值,不进行任何特殊字符的转义或变量替换。这意味着在单引号内,即使是美元符号$、反斜杠\或回车等特殊字符,也会被当作普通字符处理。禁止变量扩展: 在单引号包围的字符串中,无法引用或展开变量。例如,如果你有一个变量my_rowkey,试图在单引号内使用'$my_rowkey'将会直接打印出$my_rowkey作为文本,而不会解析其实际值。不能...阅读全文

博文 2024-05-12 12:53:14 zhidiantech

[23章附电子书]SpringBoot+Vue3+MySQL集群 开发健康体检双系统

![1.png](http://static.itsharecircle.com/231220/170d0dabae251a4821d02089fa1fb706.png) 大家都知道医疗行业是互联网发展前景极好的领域之一,对于初入职者、转行者来说都是很好的选择,今天我将给大家讲解一个关于健康+体检双系统的项目,项目以业务驱动技术栈,打造完整、全面的双系统项目,并采用前后端分离架构,业务功能完善,界面美观,可以高效积累大型医疗项目经验,快速提升医疗行业就业竞争力。 项目开始前,我们先来安装JDK 如果你本地有其他版本的JDK,一定要先卸载所有JDK,然后再安装JDK15.0.2,并且配置`PATH`和`JAVA_HOME`环境变量,否则JDK版本会出现错乱。 第二步就是部署Maven工具 配置...阅读全文

博文 2023-12-20 15:20:59 muandhbw

云电脑:IO虚拟化实现的技术分析

本文分享自天翼云开发者社区《云电脑:IO虚拟化实现的技术分析》,作者:大利云电脑是一种基于云计算技术的虚拟化电脑,它通过网络将物理硬件资源虚拟化成多个虚拟机,每个虚拟机都拥有独立的操作系统和应用程序。IO虚拟化技术是实现云电脑的关键技术之一,它可以实现网络和存储等资源的虚拟化。本文将从专业论述的角度来探讨云电脑中IO虚拟化技术的实现原理、分类和应用场景。一、IO虚拟化技术的实现原理IO虚拟化技术是一种将硬件资源虚拟化的技术,它可以在虚拟机中模拟真实的网络和存储设备,使得虚拟机可以像真实的计算机一样进行网络访问和数据存储。IO虚拟化技术的实现原理主要包括以下几个方面:1.硬件资源的虚拟化:IO虚拟化技术通过在物理硬件资源上添加虚拟化层,将物理硬件资源划分为多个虚拟资源,每个虚拟资源都有独立的内...阅读全文

博文 2023-12-04 16:37:27 Tianyiyun

【完结13章】高性能多级网关与多级缓存架构落地实战

【完结13章】高性能多级网关与多级缓存架构落地实战 给大家分享一套网关课程——高性能多级网关与多级缓存架构落地实战,已完结13章,附源码+电子书。 多级网关与多级缓存架构是一种常用的系统架构设计模式,用于提高系统性能和可扩展性。下面详细介绍一下这两种架构。 多级网关架构(Multi-tier Gateway Architecture): 多级网关架构是指将系统划分为多个层次或级别的网关,每个网关层次负责执行特定的功能。每个网关层次都有其特定的职责,可以是协议转换、数据加工、请求分发等。不同的网关层次可以部署在不同的服务器上,通过网络连接起来。 多级网关架构的主要优点包括: 1. 模块化和可扩展性:通过将系统划分为多个网关层次,可以方便地扩展和替换某个特定层次的功能模块,而无需影响整个系统。 ...阅读全文

博文 2023-12-15 16:18:06 woaiwodejia333

一课掌握Java并发编程精髓(完结13章)

一课掌握Java并发编程精髓(完结13章) 分享一套Java课程——一课掌握Java并发编程精髓(完结13章),附源码+PDF课件下载。 并发编程 1.多线程 Java 是最先支持多线程的开发的语言之一,Java 从一开始就支持了多线程能力。由于现在的 CPU 已经多是多核处理器了,是可以同时执行多个线程的。 多线程优点 多线程技术使程序的响应速度更快 ,可以在进行其它工作的同时一直处于活动状态,程序性能得到提升。 性能提升的本质 就是榨取硬件的剩余价值(硬件利用率)。 并行与并发 单核 cpu 下,线程实际是串行执行的。操作系统中有一个组件叫做任务调度器,将 cpu 的时间片,分给不同的线程使用,只是由于 cpu 在线程间(时间片很短)的切换非常快,人类感觉是同时运行的。 总结为一句话就是...阅读全文

博文 2023-12-20 16:06:06 woaiwodejia333

7-文件IO

1. 阻塞 IO通常来说,从普通文件读数据,无论你是采用 fscanf,fgets 也好,read 也好,一定会在有限的时间内返回。但是如果你从设备,比如终端(标准输入设备)读数据,只要没有遇到换行符(’\n’),read 一定会“堵”在那而不返回。还有比如从网络读数据,如果网络一直没有数据到来,read 函数也会一直堵在那而不返回。read 的这种行为,称之为 block,一旦发生 block,本进程将会被操作系统投入睡眠,直到等待的事件发生了(比如有数据到来),进程才会被唤醒。系统调用 write 同样有可能被阻塞,比如向网络写入数据,如果对方一直不接收,本端的缓冲区一旦被写满,就会被阻塞。1.1 阻塞读终端实验代码// 文件名:blockdemo.c#include 阅读全文

博文 2023-05-15 10:06:01 阻塞与非阻塞IO_51CTO博客_阻塞io和非阻塞io区别

【24章】Qt 全流程实战企业级项目 - 云对象存储浏览器

【24章】Qt 全流程实战企业级项目 - 云对象存储浏览器 给大家分享一套课程——Qt 全流程实战企业级项目 - 云对象存储浏览器,课程共24章,包更新。附源码+PDF课件。 开发QT有两种IDE可以使用,一种是使用 VS + Qt 的插件,另一种就是使用QtCreator工具。前一种是微软的工具,用的都比较多容易上手,缺点是信号槽的支持不太好,需要手写,不能自动生成,另外可能有中文编码的问题。后一种是Qt的官方IDE,智能提示与调试功能不如VS强大,但是是跨平台的IDE,其QtDesigner设计UI界面操作比较方便,并且由于是QT官方的IDE,对编码等支持都比较好,里面集成了Qt的帮助文档。不得不说Qt的帮助文档做的是非常好的,集成进QtCreator环境之后更加方便。 QT中最常用的控...阅读全文

博文 2023-12-13 16:17:20 woaiwodejia333

云电脑超详细技术讲解

本文分享自天翼云开发者社区《云电脑超详细技术讲解》,作者:不知不觉随着云计算技术的快速发展,云电脑作为一种新型的计算模式,越来越受到人们的关注。云电脑是一种基于云计算技术的虚拟化计算资源,它通过将物理服务器资源进行虚拟化,形成了动态、可扩展的计算资源池。用户可以通过互联网远程访问云电脑,进行各种操作,如办公、设计、开发等。本文将详细讲解云电脑的技术原理和实现过程。一、云电脑技术原理虚拟化技术云电脑的核心技术是虚拟化技术。虚拟化技术可以将物理服务器资源进行虚拟化,形成多个虚拟机。每个虚拟机都有自己的操作系统和应用程序,但它们共享物理服务器的硬件资源。这种虚拟化技术可以大大提高服务器的利用率,降低成本和维护成本。云计算技术云计算技术是云电脑的另一个重要技术。云计算技术可以将大量的物理服务器资源进...阅读全文

【Linux】 shell if的[]和[[]]区别、=~语法_shell if []

文章目录 1. []和test2. []和[[]]区别2.1 先有[] 语法,并内置于linux系统,后来才有 [[]]2.2 [] 语法 都可以由 [[]] 替代,并且后者功能更丰富。2.3 二者都建议在表达式和括号自身使用空格避免出错2.4 [] 和 [[]] 中,字符串可以不加引号,此时等号右侧支持通配符2.5 当目标是数字类型时,二者都可以使用 -eq进行数字比较2.6 当目标是数字类型时,都支持>、>=等 数字比较符2.7 都可以使用= 、!=进行字符串比较2.8 在逻辑表达式语法稍有不同,[] 使用 -a、-o 分别表示与、或 关系 ,[[]]使用 &&、 ||表示与 、或关系2.9 逻辑运算符的优先级2.10 [[]]支持字符串模糊匹配,而[]不支持2.11 [[]]支持=~字...阅读全文

博文 2024-04-19 10:16:28 CSDN博客

[完结7章]C++大厂面试真题宝典 精选100道

![1.png](http://static.itsharecircle.com/240308/901bc4f770305e90c29771d610d2ba74.png) C++大厂面试汇总,希望对大家的面试有帮助: 1、C和C++的区别 C是面向过程的语言,而C++是面向对象的语言。 C和C++动态管理内存的方法不一样,C是使用malloc/free函数,而C++除此之外还使用new/delete关键字。 C++的类是C里没有的,但是C中的struct是可以在C++中正常使用的,并且C++对struct进行了进一步的扩展,使得struct在C++中可以和class有一样的作用。而唯一和class不同的地方在于struct成员默认访问修饰符是public,而class默认的是private。...阅读全文

博文 2024-03-08 10:29:22 gaindiuhgw

C#+PLC通讯框架串口网口开发课程

C#+PLC通讯框架串口网口开发课程 C# 是面向对象的、面向组件的编程语言。 C# 提供了语言构造来直接支持这些概念,让 C# 成为一种非常自然的语言,可用于创建和使用软件组件。 自诞生之日起,C# 就添加了支持新工作负载和新兴软件设计实践的功能。 C# 本质上是面向对象的语言。 你需要定义类型及其行为。 多项 C# 功能有助于创建可靠且持久的应用程序。 垃圾回收自动回收不可访问的未用对象所占用的内存。 可以为 null 的类型可防范不引用已分配对象的变量。 异常处理提供了一种结构化且可扩展的方法来进行错误检测和恢复。 Lambda 表达式支持函数编程技术。 语言集成查询 (LINQ) 语法创建一个公共模式,用于处理来自任何源的数据。 异步操作语言支持提供用于构建分布式系统的语法。 C# ...阅读全文

博文 2024-03-14 16:19:28 xiaoshuai8888

C++大厂面试真题宝典 精选100道

C++大厂面试真题宝典 精选100道 好课大家一起分享——C++大厂面试真题宝典 精选100道,附课程源码下载。 C和C++的区别 C是面向过程的语言,而C++是面向对象的语言。 C和C++动态管理内存的方法不一样,C是使用malloc/free函数,而C++除此之外还使用new/delete关键字。 C++的类是C里没有的,但是C中的struct是可以在C++中正常使用的,并且C++对struct进行了进一步的扩展,使得struct在C++中可以和class有一样的作用。而唯一和class不同的地方在于struct成员默认访问修饰符是public,而class默认的是private。 C++支持重载,而C语言不支持。 C++有引用,C没有。 C++全部变量的默认链接属性是外链接,而C是内链...阅读全文

博文 2024-03-07 19:02:42 xiaoshuai8888

说说 Spring 表达式语言(SpEL)中的各种表达式类型

1 文本表达式 文本表达式支持字符串、 日期 、 数字(正数 、 实数及十六进制数) 、 布尔类型及 null。其中的字符表达式可使用单引号来表示,形如:'Deniro'。如果表达式中包含单引号或者双引号字符,那么可以使用转义字符 /。 ExpressionParser parser = new SpelExpressionParser(); //字符串解析 String str = (String) parser.parseExpression("'你好'").getValue(); System.out.println(str); //整型解析 int intVal = (Integer) parser.parseExpression("0x2F").getValue(); System...阅读全文

博文 2024-02-23 16:15:35 掘金

S3基准测试工具 - Warp使用简介

本文分享自天翼云开发者社区《S3基准测试工具 - Warp使用简介》,作者:y****n1.Warp⼯具简介warp 是⼀款开源的S3基准测试⼯具,开源S3项⽬minio下的⼀个⼦项⽬,可以对兼容S3语义的服务进⾏基准测试。2.Warp主要功能及配置常⽤功能有mixed,put,get,analyze等;mixed:是混合读写模式,可以指定put、get、delete、stat类型的请求的不同⽐例。put:只进⾏上传请求。get:先上传部分数据进⾏预热,然后只进⾏下载请求。analyze:将其他模式的输出结果进⾏分析,warp数据取样间隔5s例:mixed 混合读写1:9warp mixed --put-distrib=90 --get-distrib=10 --stat-distrib=0...阅读全文

CRISP-DM的应用与理解

本文分享自天翼云开发者社区《CRISP-DM的应用与理解》,作者:吴****嫄CRISP-DM是一个数据挖掘项目规划的开放标准流程框架模型,主要分为业务理解、数据理解、数据准备、建模、评估、部署六个阶段。业务理解从业务的角度理解项目的目标和需求,将业务的目的转换为一个数据挖掘的问题,制定一个初步的实现计划计划。商业理解是明确要达到的业务目标,并将其转化为数据挖掘主题。要从商业角度对业务部门的需求进行理解,并把业务需求的理解转化为数据挖掘的定义,拟定达成业务目标的初步方案。具包括商业背景分析、商业成功标准的确定、形势评估、获得企业资源清单、获得企业的要求和想、评估成本和收益、评估风险和意外、初步理解行业术语,并确定数据挖掘的目标和制定数挖掘计划。在整个CRISP-DM的过程当中,围绕数据为核心...阅读全文

博文 2024-09-02 14:22:25 Tianyiyun

Java 9 新特性

文链接 作者:baeldung 译者:Reion Chan 概述   字符串在 Java 的 String 类内部由一个包含该字符串中所有字符的 char[] 来表示,其中的每个字符 char 又是由 2 个字节组成,因为 Java 内部使用 UTF-16。举例来说,如果一个字符串含有英文字符,那么这些英文字符的前 8 比特都将为 0,因为一个ASCII字符都能被单个字节来表示。   当然有许多字符需要 16 比特,但从统计角度来说只需 8 比特的情况占大多数,例如:LATIN-1 ,因此这能成为一种改善内存占用及性能的一个机会。更重要的是:由于 JVM 存储字符串的方式导致 JVM 堆空间通常很大一部分都被字符串所占据。   大多数情况下,字符串实例常占用比它实际需要的内存多一倍的空间。 ...阅读全文

博文 2024-09-25 16:35:08 Compact Strings — 書陋堂 Slowtown