
it
文章平均质量分 88
www_xuhss_com
这个作者很懒,什么都没留下…
展开
-
语句和表达式有什么不同
JavaScript中的语句和表达式有什么不同之处?对于这个问题,我似乎知道答案,但当我尝试向别人解释时,我却语塞了。对于这个问题我有一种感觉,但无法清晰的表达出来。我后来才意识到,这个问题极其重要。它可以说是房屋的承重墙,将有助于支撑大量的JavaScript知识。对React开发者来说,更为如此。你不得不记住的那些JSX规则,以及总是忘记遵守的那些规则,大部分都是语句/表达式双重性的结果。在这篇文章中,我将分享我对这两者区别的一些感悟,以及我们如何在日常工作中使用这些信息。if/elsefor。...原创 2022-07-15 12:58:54 · 1943 阅读 · 1 评论 -
NFS介绍与搭建
回到顶部##1.1、什么是NFSNFS是NetworkFileSystem的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。NFS在文件传送或信息传送过程中依赖于RPC协议。RPC远程过程调用(RemoteProcedureCall)是能使客户端执行其他系统中程序的一种机制。NFS服务器可以看作是一个FILESERVER。它可以让你的机器(客户端)通过网络将远端的NFSSERVER共享目录MOUNT到自己的系统中。回到顶部。...原创 2022-07-15 01:21:41 · 980 阅读 · 0 评论 -
C# 实例解释面向对象编程中的接口隔离原则
在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特·C·马丁(Robert Cecil Martin)提出的许多原则的子集,在他2000年的论文《设计原则与设计模式》中首次提出。SOLID 原则包含:本文我们来介绍接口隔离原则。接口隔离原则(Interface segregation principle,ISP)认为“多个特定用户接口要好于一个宽泛用途的接口”。它指明用户(client)不应被迫使用对其而言无用的方法或功能原创 2022-07-14 12:50:28 · 416 阅读 · 0 评论 -
Hash 哈希表和算法思路详解
取关键字key,使用线性函数 Hash(key) = a * key + b。在一个班级里,同龄学生很多。在取学生年龄作为key时,应避免以年份作为key组成部分。key取平方,截取中间的几位作为新的key。数学计算的性质乘积中间几位和乘数每一位都有关,充分混合key每一位对生成的哈希值的影响,使映射分布更均匀。Hash(key) = key % mHash(key) = floor(frac(key * A), m), 0Hash(key) = rand(key)将关键字按固定长度分成几段然后相加。由于哈原创 2022-07-14 01:21:25 · 482 阅读 · 0 评论 -
【.NET基础】Linq常用语法代码演示
前言:前言不重要,linq入门常用的语法,linq语法可以用来写操作集合、数据库表集合等等几乎所有集合类型的操作。下面就写几个案例(以List集合来做的),看代码和运行结果即可。本文演示环境:VS2022 + .NET 61、创建一个.NET 6.0的控制台项目,用来演示测试和输出。2、然后新增两个实体类,用于后续做测试使用,包括关联查询等。3、初始化一丢丢数据,当做测试的原始数据。4、先运行下,看下当前数据集合的结果集是怎么样的。此处以Json格式展示,以下其他输出也一样,都是用Json数据输出,比较好对原创 2022-07-13 12:57:06 · 318 阅读 · 3 评论 -
强化学习-学习笔记14 | 策略梯度中的 Baseline
本篇笔记记录学习在 策略学习 中使用 Baseline,这样可以降低方差,让收敛更快。Vπ(s)=EA∼π[Qπ(s,A)]=∑aπ(a|s;θ)⋅Qπ(a,s)V_\pi(s)=\mathbb{E}_{A\sim \pi}[Q_\pi(s,A)]=\sum\limits_{a}\pi(a|s;\theta)\cdot Q_\pi(a,s)∂ Vπ(s)∂ θ=EA∼π[∂lnπ(A|s;θ)∂θ⋅Qπ(s,A)]\frac{\partial \ V_\pi(s)}{\partial \ \theta}=\原创 2022-07-12 12:47:43 · 950 阅读 · 0 评论 -
dolphinscheduler添加hana支持
转载请注明出处: https://blog.youkuaiyun.com/funnyzpc/p/16395092.html上一节有讲对的支持,同时也讲了下的的配置( ),唯一的缺陷是默认只对常规数据库厂商的做了支持,比如:、、、…等等,所以必须要扩展,以提供选项,不然仅仅支持了仍旧无法在中使用哈(~ ̄(OO) ̄)ブ本篇博客仅讲个人对添加支持的改造过程,具体代码不大会提到,有需要参考的,可以访问https://github.com/funnyzpc/dolphinscheduler-2.0.5以获取源码,同时,若您有原创 2022-07-12 01:21:01 · 435 阅读 · 0 评论 -
SSH 多密钥配置
目录* 前言当我们从 GitHub 克隆某个仓库时,往往使用 HTTPS 协议,除此之外,也可以使用 SSH 协议;当我们的客户机与远端服务器连接时,更加离不开 SSH 协议。如果我们需要连接多个远程终端,那么合理配置多个 SSH 密钥就显得很有必要。SSH 全称为:Secure Shell,是一种加密的网络传输协议,通过在网络中创建安全隧道来实现客户端与服务器之间的连接。SSH 在 数据传输 时基本上都采用对称加密方式,但是在进行 身份验证 时却需要采用非对称加密的形式,也就是 公钥—私钥对 的形式。生成原创 2022-07-11 01:21:17 · 2873 阅读 · 0 评论 -
Properties集合中的方法store和Properties集合中的方法load
Properties集合中的方法storeProperties集合中的方法load可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用void load(InputStream inStream)void load(Reader reader)参数:InputStream inStream:字节输入流,不能读取含有中文的键值对Reader reader:字符输入流,能读取含有中文的键值对 使用步骤:1.创建Properties集合对象2.使用Properti原创 2022-07-09 12:51:23 · 212 阅读 · 0 评论 -
HashSet 添加/遍历元素源码分析
HashSet 底层机制说明模拟数组+链表的结构HashSet 添加元素底层机制HashSet 添加元素的底层实现HashSet 扩容机制HashSet 添加元素源码HashSet 遍历元素底层机制HashSet 遍历元素底层机制 的底层是 , 的迭代器也是借由 来实现的 实际上是去调用 的 方法返回一个 对象,而 是 的一个内部类 方法返回一个 对象, 是 的一个内部类 继承了 (的内部类) 类,并实现了 接口,即 、原创 2022-07-09 01:20:25 · 343 阅读 · 0 评论 -
go-zero微服务实战系列(十、分布式事务如何实现)
在分布式应用场景中,分布式事务问题是不可回避的,在目前流行的微服务场景下更是如此。比如在我们的商城系统中,下单操作涉及创建订单和库存扣减操作两个操作,而订单服务和商品服务是两个独立的微服务,因为每个微服务独占一个数据库实例,所以下单操作就涉及到分布式事务问题,即要把整个下单操作看成一个整体,要么都成功要么都不成功。本篇文章我们就一起来学习下分布式事务的相关知识。我们去店里就餐的时候,付钱点餐后往往服务员会先给我们一张小票,然后拿着小票去出餐口等待出餐。为什么要把付钱和取餐两个动作分开呢?很重要的一个原因是使原创 2022-07-08 12:52:57 · 654 阅读 · 0 评论 -
企业级自定义表单引擎解决方案(十二)--体验代码目录结构
体验地址:http://47.108.141.193:8031/体验网站数据库定期还原,可以随意修改配置查看效果,为方便其他人使用,模板相关的配置请尽量不要动。放置网站统计信息,目前未实现部门及其成员管理,常规的部门成员管理工作流相关功能,我的代办、已办、流程实例管理、流程定义管理等系统统一消息管理中心,包括消息规则设置、消息发送中心、我的消息等定时作业管理中心,动态配置定时作业,作业调度情况查看自定义表单模板也是普通表单,这里配置模板运行的效果单表管理,最普通的表单,结构为:{单表表单:{单表列表视图:{原创 2022-07-07 12:55:13 · 472 阅读 · 0 评论 -
Netty 如何高效接收网络数据?一文聊透 ByteBuffer 动态自适应扩缩容机制
在前边的系列文章中,我们从内核如何收发网络数据开始以一个C10K的问题作为主线详细从内核角度阐述了网络IO模型的演变,最终在此基础上引出了Netty的网络IO模型如下图所示:后续我们又围绕着Netty的主从Reactor网络IO线程模型,在《Reactor模型在Netty中的实现》一文中详细阐述了Netty的主从Reactor模型的创建,以及介绍了Reactor模型的关键组件。搭建了Netty的核心骨架如下图所示:在核心骨架搭建完毕之后,我们随后又在《详细图解Reactor启动全流程》一文中阐述了React原创 2022-07-06 06:35:14 · 860 阅读 · 0 评论 -
【系统设计】指标监控和告警系统
在本文中,我们将探讨如何设计一个可扩展的指标监控和告警系统。 一个好的监控和告警系统,对基础设施的可观察性,高可用性,可靠性方面发挥着关键作用。下图显示了市面上一些流行的指标监控和告警服务。接下来,我们会设计一个类似的服务,可以供大公司内部使用。从一个小明去面试的故事开始。面试官:如果让你设计一个指标监控和告警系统,你会怎么做?小明:好的,这个系统是为公司内部使用的,还是设计像 Datadog 这种 SaaS 服务?面试官:很好的问题,目前这个系统只是公司内部使用。小明:我们想收集哪些指标信息?面试官:包括原创 2022-07-05 12:56:55 · 1290 阅读 · 0 评论 -
【机器学习】手写数字识别
logistic回归,是一个分类算法,可以处理二元分类,多元分类。我们使用sklearn中的logistic对手写数字识别进行实践。MNIST数据集来自美国国家标准与技术研究所,训练集由250个不同人手写数字构成,50%高中学生,50%来自人口普查局。百度云盘:链接:https://pan.baidu.com/s/1ZBU8XBsx7lp7gdN4ySSIWg提取码:5mrfpycharm默认会在右边进行绘图,由于某些原因导致图片不能显示,只能是白图的解决办法。我们可以首先把图片显示调到独立画框显示。f原创 2022-07-05 07:36:58 · 1154 阅读 · 0 评论 -
梯度下降算法实现原理(Gradient Descent)
梯度下降法(Gradient Descent)是一个算法,但不是像多元线性回归那样是一个具体做回归任务的算法,而是一个非常通用的优化算法来帮助一些机器学习算法求解出最优解的,所谓的通用就是很多机器学习算法都是用它,甚至深度学习也是用它来求解最优解。所有优化算法的目的都是期望以最快的速度把模型参数θ求解出来,梯度下降法就是一种经典常用的优化算法。 思想就类比于生活中的一些事情,比如你去询问你的一个朋友工资多少,他不会告诉你,但是他会让你去猜,然后告诉你猜的结果。你每说出一次答案,他就会说猜高了或是猜低了,原创 2022-06-30 01:20:10 · 647 阅读 · 0 评论 -
Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等)
本文主要研究如何从IOC容器已有的BeanDefinition信息,实例化出Bean对象;这里还会包括三块重点内容:初步的思考上文我们已经分析了IoC初始化的流程,最终的将Bean的定义即BeanDefinition放到beanDefinitionMap中,本质上是一个;并且BeanDefinition接口中包含了这个类的Class信息以及是否是单例等;这样我们初步有了实现这个方法的思路:由于BeanDefinition还有单例的信息,如果是无参构造函数的实例还可以放在一个缓存中,这样下次获取这个单例的原创 2022-06-29 12:46:59 · 620 阅读 · 0 评论 -
论文解读(DCN)《Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering》
为了恢复“聚类友好”的潜在表示并更好地聚类数据,我们提出了一种联合 DR (dimensionality reduction) 和 K-means 的聚类方法,通过学习深度神经网络(DNN)来实现 DR。给定样本集 {xi}i=1,…,N{xi}i=1,…,N\left{\boldsymbol{x}_{i}\right}_{i=1, \ldots, N} ,xi∈RMxi∈RM\boldsymbol{x}_{i} \in \mathbb{R}^{M}。聚类的任务是将 NNN 个数据样本分成 KKK 类。K-原创 2022-06-29 01:26:28 · 911 阅读 · 0 评论 -
《HelloGitHub》第 75 期
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift…让你在短时间内感受到开源的魅力,对编程产生兴趣!1、fontforge:免费开源的字体编辑器。适用于 Windows、macOS、Linux 的编辑字体桌面工具,支持创建和编辑多种格式的字体,可用来构建自己的字体。2、TencentOS-tiny:腾讯开源的物联网终端操作系统。精简的实时操作系统(RTOS)内原创 2022-06-28 12:48:49 · 1054 阅读 · 0 评论 -
简单ELK配置实现生产级别的日志采集和查询实践
ES为了处理大型数据集,实现容错和高可用性,ES可运行多服务器组成分布式环境下也称为集群;集群内的节点的cluster.name相同,形成集群的每个服务器称为节点。ES 为分配不同的任务,定义了以下几个节点角色:Master,Data Node,Coordinating Node,Ingest Node:主节点(Master Node):主要职责是负责集群层面的相关操作,管理集群变更,如创建或删除索引,跟踪哪些节点是群集的一部分,并决定哪些分片分配给相关的节点。数据节点(Data Node):主要是存原创 2022-06-28 01:22:29 · 613 阅读 · 1 评论 -
嵌入式软件架构设计-模块化
模块化程序设计是指在进行程序设计时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能的程序设计方法。为什么要模块化程序设计?那就需要从程序模块化的好处说起!只有了解了其优点,才能更好的实现模块化编程。基本思路是自顶向下、逐步分解、分而治之,即将一个较大的程序按照功能分割成一些小模块;比如手持遥控器,主要功能就是人机交互,可能还会有参数设置等,那么依次往下分解得到以下模块:在拆分模块时应该注意以下几个主要原则:通常一个模块原创 2022-06-27 12:53:58 · 742 阅读 · 0 评论 -
ElasticSearch7.3学习(三十二)----logstash三大插件(input、filter、output)及其综合示例
logstash支持很多数据源,比如说等等图片上面只是一少部分。详情见网址:https://www.elastic.co/guide/en/logstash/current/input-plugins.html这种控制台输入前面已经介绍过了,这里就不解析了。链接:ElasticSearch7.3学习(三十一)----Logstash基础学习1.3 读取文件(File)比如说我存在一个文件,文件内容如下:注意:文件光标要指向下一行,不然最后一行可能读取不到我想把文件内容打印至控制台显示。可在里面添加如下内原创 2022-06-26 12:50:19 · 1703 阅读 · 0 评论 -
Android multiple back stacks导航的几种实现
谈谈android中多栈导航的几种实现.当用户在app里切换页面时, 会需要向后回退到上一个页面, 页面历史被保存在一个栈里.在Android里我们经常说"back stack".有时候在app里我们需要维护多个back stack, 比较典型的场景是bottom navigation bar或者侧边的drawer.如果需求要求在切换tab的时候保存每个tab上的历史, 这样当用户返回的时候还是返回到上次离开的地方, 这种就叫multiple stacks.(与之对应的single stack行为是返回之原创 2022-06-25 12:58:13 · 196 阅读 · 0 评论 -
根据先序遍历和中序遍历生成后序遍历
作者:Grey原文地址: 根据先序遍历和中序遍历生成后序遍历牛客:通过先序和中序数组生成后序数组假设有一棵二叉树先序遍历的结果是中序遍历的结果是由于先序遍历大的调度逻辑是,先头,再左,再右后序遍历的调度逻辑是:先左,再右,再头。所以:后序遍历的最后一个节点,一定是先序遍历的头节点。定义递归函数依据以上推断,可以得到如下结论然后,在中序数组中,我们可以定位到这个头节点的位置,即下图中标黄的位置,假设这个位置是,这个将中序数组分成了左右两个部分,由于中序遍历的调度过程是:先左,再头,再右,所以在中序遍历中区原创 2022-06-24 12:49:03 · 696 阅读 · 0 评论 -
安装typescript环境并开启VSCode自动监视编译ts文件为js文件
小编最近开始学习,懂得人都知道,是的基础伴生,配合更加默契。就像和一样!不像js那样浏览器直接可以解读,需要我们把ts文件编译成js文件,这样浏览器才可以解读。所以我们要安装一下ts的环境和自动编译,方便我们后续学习,不需要写完一个ts文件在手动编译!必须要有node环境哈! + 输入代表global全局安装查看版本行修改生成的js文件存放位置为:json文件夹所在目录的js文件夹下,js不存在会帮助我们新建!行我们关闭语法检查,随意一点哈!(根据个人喜好设置)找到,点击点击找到要监视的文件转载 2022-06-23 12:49:14 · 460 阅读 · 0 评论 -
Java 泛型中的通配符
本文内容如下:1、 什么是类型擦除2、常用的 ?, T, E, K, V, N的含义3、上界通配符 < ?extends E>4、下界通配符 < ?super E>5、什么是PECS原则6、通过一个案例来理解 ?和 T 和 Object 的区别我们说Java的泛型是伪泛型,那是因为泛型信息只存在于代码编译阶段,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程为类型擦除。泛型是Java 1.5版本才引进的概念,在这之前是没有泛型的,但是因为类原创 2022-06-23 01:21:49 · 204 阅读 · 0 评论 -
Node.js精进(3)——流
在 JavaScript 中,一般只处理字符串层面的数据,但是在 Node.js 中,需要处理网络、文件等二进制数据。由此,引入了Buffer和Stream的概念,两者都是字节层面的操作。Buffer 表示一块专门存放二进制数据的缓冲区。Stream 表示流,一种有序、有起点和终点的二进制传输手段。Stream 会从 Buffer 中读取数据,像水在管道中流动那样转移数据。本系列所有的示例源码都已上传至Github,点击此处获取。Buffer 是 JavaScript 中的 Uint8Array 的子类,U原创 2022-06-21 12:54:06 · 594 阅读 · 0 评论 -
SQLite数据库损坏及其修复探究
SQLite 数据库具有很强的抗损坏能力。在执行事务时如果发生应用程序崩溃、操作系统崩溃甚至电源故障,那么在下次访问数据库文件时,会自动回滚部分写入的事务。恢复过程是全自动的,不需要用户或应用程序的任何操作。尽管 SQLite 数据库具有很强的抗损坏能力,但仍有可能发生损坏。数据库文件本身是磁盘文件的一种,因此任何进程都可以往这个文件中写入数据。SQLite 自身对这种行为也无能为力。数据库文件关闭后又被开启,其他线程往旧的文件描述符写入数据,导致覆盖部分数据产生数据库损坏。在后台对数据库文件进行自动备份的原创 2022-06-21 01:21:51 · 3335 阅读 · 0 评论 -
当JAVA注解、AOP、SpEL相遇,更多可能变为了现实
常规情况下,我们可以通过业务定制化的,借助机制来实现某些通用的处理策略。比如定义个注解,可以用于标识在具体的方法上,然后用来指定某个方法必须要指定角色的人才能够访问调用。这里,注解里面传入的参数始终是编码的时候就可以确定下来的固定值()。在业务开发中,也许你会遇到另一种场景:我们希望能够使用注解的方式来实现,需要能够将动态的文档ID通过注解传递,然后在处理类中获取到文档ID然后进行对应的权限控制。但是按照常规方式去写代码的时候,会发现并不支持直接传递一个请求对象到注解中。这个时候,就轮到我们的主角“”上场原创 2022-06-20 12:52:32 · 157 阅读 · 0 评论 -
Mybatisi和Spring整合源码分析
1.创建 Maven 工程。2.添加依赖,代码如下3.添加实体如下,4.添加 Mapper接口以及BookMapper.xml文件,5.添加 BookService 和 BookServiceImpl代码如下,6.添加配置类,代码如下7.添加主类代码,代码如下二、Mybatis和Spring的整合 因为Mybatis中使用的是Mapper.class 接口来找到数据库sql语句,并且是通过SqlSessionFactory的SqlSession来连接数据库和执行Sql语句的。所以Mybati原创 2022-06-20 01:20:08 · 120 阅读 · 0 评论 -
Bika LIMS 开源LIMS集——ERD实体关系定义(数据库设计)
数据分为四类:使用ZODB,关于Bika LIMS的技术架构,链接:https://blog.youkuaiyun.com/mahongbiao/p/16389882.html主要包括实验室的核心静态数据以及组织机构配置主要包括客户、客户方联系人配置等主要包括对供应商的原辅料和出厂产品的检测QC,制定内控高低限...原创 2022-06-19 12:52:56 · 659 阅读 · 0 评论 -
透过Redis源码探究字符串的实现
最近在通过 Redis 学 C 语言,不得不说,Redis的代码写的真的工整。这篇文章会比较全面的深入的讲解了Redis数据结构字符串的源码实现,希望大家能够从中学到点东西。Redis 的字符串源码主要都放在了 和 这两个文件中。具体实现已经被剥离出来变成单独的库:https://github.com/antirez/sds。Redis 的动态字符串结构如下图所示:SDS 大致由两部分构成:header以及 数据段,其中 header 还包含3个字段 len、alloc、flags。len 表示数据长度原创 2022-06-19 01:19:06 · 127 阅读 · 0 评论 -
iNeuOS工业互联网操作系统,增加搜索应用、多数据源绑定、视图背景设置颜色、多级别文件夹、组合及拆分图元
目 录1. 概述… 22. 搜索应用… 23. 多数据源绑定… 34. 视图背景设置颜色… 45. 多级别文件夹… 46. 组合及拆分图元… 5有一个项目案例,一个区域性的工业企业环境环保平台建设,部分功能应用了iNeuOS视图建模(可以叫组态)功能模块。但是没有想到的是使用视图建模功能模块开发了有1000多张监测预警画面,在应用的过程中现场也提出来很多合理化的改进建议。我们对建议进行了整体评估,并且进行了完善包括:搜索应用、多数据源绑原创 2022-06-18 12:52:44 · 1280 阅读 · 0 评论 -
【翻译】驯服野兽:Scylla 如何利用控制理论来控制压实
教程翻译自Seastar官方文档:https://www.scylladb.com/2018/06/12/scylla-leverages-control-theory/转载请注明出处:https://blog.youkuaiyun.com/morningli/p/16170046.html从鸟瞰的角度来看,数据库的任务很简单:用户插入一些数据,然后再获取它。但是当我们仔细观察时,事情变得更加复杂。例如,为了持久性,数据需要进入提交日志,需要被索引,并且被多次重写以便可以轻松获取。所有这些任务都是数据库的内部进程,它们原创 2022-06-18 01:21:48 · 235 阅读 · 0 评论 -
docker和docker compose安装使用、入门进阶案例
现在可谓是容器化的时代,云原生的袭来,导致的崛起,作为一名java开发,现在慌得一批。作为知识储备,小编也是一直学关于的东西,还有一些持续继承。提到docker,大家都知道,以前需要在linux中安装的,现在只需要下来镜像,然后运行就可以直接使用了!非常的干净又卫生,但是想想我们一个web应用,是需要mysql、redis、mq等很多个应用组成的,我们使用了docker,就需要一个个的运行,很是麻烦,而且还需要给他们建立一个网桥,因为容器之间是相互隔离的!当微面临微服务时,比如有20个微服务项目,并且相互转载 2022-06-16 12:57:05 · 369 阅读 · 1 评论 -
Java开发学习(五)----bean的生命周期
首先理解下什么是生命周期?bean生命周期是什么?bean生命周期控制是什么?环境搭建:最终项目的结构如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9xupvLvP-1655313698384)(https://img2022.cnblogs.com/blog/1126989/202206/1126989-20220613204107989-1273759163.png)](1)项目中添加BookDao、BookDaoImpl、BookService和BookServi原创 2022-06-16 01:22:41 · 446 阅读 · 0 评论 -
聊聊 C++ 和 C# 中的 lambda 玩法
这几天在看 C++ 的 lambda 表达式,挺有意思,这个标准是在 加进去的,也就是 2011 年,相比 C# 2007 还晚了个 4 年, Lambda 这东西非常好用,会上瘾,今天我们简单聊一聊。首先我们看下 C++ 语法定义格式:相比 C# lambda 的语法格式:要复杂一些,之所以复杂还是因为 C++ 让程序员用的必须更谨慎一些。为了说明更谨慎在哪里,我们上一个简单的例子。上面就定义了一个原子化的 lambda 函数,在现实开发中往往不仅要获取参数,还要获取 的变量,比如说,我想计算 的原创 2022-06-15 01:21:21 · 1458 阅读 · 3 评论 -
王者并发课-铂金3:一劳永逸-如何理解锁的多次可重入问题
欢迎来到《王者并发课》,本文是该系列文章中的第16篇。在前面的文章《铂金1:探本溯源-为何说Lock接口是Java中锁的基础》中,我们提到了锁的可重入问题,并作了简单介绍。鉴于锁的可重入是一个重要概念,所以本文把拿出来做一次单独讲解,以帮助你彻底理解它。首先,我们通过一段示例代码看锁的可重入是如何导致问题发生,以理解它的重要性。在上面这段代码中,我们创建了一片野区,包含了野区A和野区B。接着,我们再创建一个打野英雄铠,让他进去野区打野,看看会发生什么事情。输出结果如下:从结果中可以看到,虽然在同一块野原创 2022-06-14 01:21:40 · 162 阅读 · 0 评论 -
Node.js精进(1)——模块化
模块化是一种将软件功能抽离成独立、可交互的软件设计技术,能促进大型应用程序和系统的构建。Node.js内置了两种模块系统,分别是默认的CommonJS模块和浏览器所支持的ECMAScript模块。其中,ECMAScript模块是在8.5.0版本中新增的,后面又经过了几轮的迭代。本文若无特别说明,那么分析的都是CommonJS模块。顺便说一句,本系列分析的是Node.js的最新版本18.0.0,在Github上下载源码后,可以关注下面3个目录。本系列所有的示例源码都已上传至Github,点击此处获取。还有一原创 2022-06-13 12:53:27 · 219 阅读 · 0 评论 -
【clickhouse专栏】基础数据类型说明
本文是clickhouse专栏第五篇,更多内容请关注本号历史文章!clickhouse内置了很多的column数据类型,可以通过查询这张表获取版本的所有支持的数据类型。下文中第一列是字段类型,第二列表示该类型的字段类型是否区分大小写(1表示不区分大小写,Date和date都是有效的数据类型名称),第三类是该字段类型的别名。二、基础数据类型clickhouse和传统的数据库一样,提供了基础的数据类型,这一部分就简单的介绍一下,相信学过编程语言的同学对这一部分并不陌生。整数类型,IntN随着N的增大,整型数转载 2022-06-12 12:56:36 · 190 阅读 · 0 评论