考点 内存 语言 结构

Memory Barrier 内存屏障 和 OUT OF ORDER EXECUTION OOOE OOE 乱序执行 幻读 脏读

问题 开发过程中,同一系统上,两个进程,使用了共享内存方式通信。为了追求性能,一个进程是生产者,一个进程是消费者;一个负责写,一个负责读,没有锁。写入完成后,再更新写的标识;读取数据并操作完成后,再更新读取标识,理论上没有问题,但是服务器上运行起来后,会读取到无意义的内容。 读取数据很大或者无效数据 ......
屏障 EXECUTION 内存 Barrier Memory

Spark任务调试(Scala开发语言)

// 将dataframe存储到hdfs myDF.write.orc("hdfs://nsxxxx/user/admin/dir") // 读取操作 val mdf = spark.read.orc("hdfs://nsxxxx/user/admin/dir") ......
任务 语言 Spark Scala

内核不中断前提下,Gaussdb(DWS)内存报错排查方法

摘要:本文主要讲解如何在内核保证操作不能中断采取的特殊处理,理论上用户执行的sql使用的内存(dynamic_used_memory) 是不会大范围的超过max_dynamic_memory的内存的 本文分享自华为云社区《Gaussdb(DWS)内存报错排查方法》,作者: fighttingman。 ......
内核 前提 内存 Gaussdb 方法

使用golang+antlr4构建一个自己的语言解析器(二)

Antlr4文件解析流程 该图展示了一个语言应用程序中的基本流动过程 输入一个字符流,首先经过词法分析,获取各个Token 然后经过语法分析,组成语法分析树 Antlr4语法书写规范 语法关键字和使用 | 符号 | 作用 | | | | | ? | 表达式可选| | * | 表达式出现0此或多次| ......
语言 golang antlr4 antlr

Go 语言:通过TDD测试驱动开发学习 Mocking (模拟)的思想

正文: 现在需要你写一个程序,从 3 开始依次向下,当到 0 时打印 「GO!」 并退出,要求每次打印从新的一行开始且打印间隔一秒的停顿。 3 2 1 Go! 我们将通过编写一个 Countdown 函数来处理这个问题,然后放入 main 程序,所以它看起来这样: package main func ......
Mocking 语言 思想 TDD Go

数据结构做题笔记

LG2827 [NOIP2016 提高组] 蚯蚓 用单调队列简单维护就可以做到 $O(m\log m) $,但 $m$ 有点大,我们就需要考虑特殊性质。 注意到每次切割的蚯蚓长度一定小于前几次切割的长度(指的是没有每天增加 $q$ 的情况下)。 这样考虑使用队列 $q[3]$ 分别维护还没有切割的, ......
数据结构 结构 笔记 数据

C语言学习记录(七)

C语言学习记录(七) 一、知识要点(函数) 一、函数的作用 在一个应用程序中的若干个功能相互独立,可单独操作的程序单元叫做模块。在C语言中用函数实现模块的功能,将这些模块构成完整的程序来完成问题的解决。 在C语言中,除了主函数,其他的函数称之为子函数。一个C语言程序由一个主函数和若干个子函数构成,主 ......
语言学习 语言

结构型:策略模式

定义 定义一系列的算法,将他们一个个封装起来,使他们直接可以相互替换。 算法:就是写的逻辑可以是你任何一个功能函数的逻辑 封装:就是把某一功能点对应的逻辑给抽出来 可替换:建立在封装的基础上,这些独立的算法可以很方便的替换 通俗的理解就是,把你的算法(逻辑)封装到不同的策略中,在不同的策略中是互相独 ......
结构型 策略 结构 模式

C#-结构函数Construct语法糖

C#7.0新增的解构函数语法糖 1.解析元组 (var name,var age)=GetUser(); var name; int age; (name,age)=GetUser(); public static (string name,int age) GetUser() { return ( ......
语法 函数 Construct 结构

C语言:错误错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token如何应对

GCC编译C源程序时出现:错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token,通常是因为在函数声明(包括包含的头文件中的函数声明)后面忘记了分号“;”。仔细检查一遍各个函数声明,把遗漏的分号“;”加上去就可以解决此 ......
错误 attribute expected 语言 before

Go语言:一文看懂什么是DI依赖注入(dependency injection)设计模式

前言: 本文主要介绍的是Goalng中关于 DI 的部分,前一部分会先通过典型的面向对象语言Java引入DI这个概念 仅供初学者理解使用,文章如有纰漏敬请指出 本文涉及到的知识面较为零散,其中包含面向对象编程的 SOLID原则、各语言典型的DI框架等,博主都已插入连接🔗供读者访问自行查阅 另外本文 ......

第二章 1.3节 目录结构与基本运行原理

1.1 Nginx目录结构说明 [root@k8s-master01 ~]# tree /usr/local/nginx/ /usr/local/nginx/ ├── client_body_temp ├── conf # 存放一系列配置文件的目录 │ ├── fastcgi.conf # fast ......
原理 结构 第二章 目录 1.3

Redis - 对象结构

其实,Redis 的每种对象都有对象结构与对应编码的数据结构组合而成,进阶 Redis 就需要从它的对象机制开始。 ......
对象 结构 Redis

将一个多维数组整合成树形结构,可以通过递归函数来实现

function buildTree(arr, parentId = null) { let tree = []; for (let i = 0; i < arr.length; i++) { let item = arr[i]; if (item.parentId parentId) { let ......
树形 数组 函数 可以通过 结构

Mysql索引底层数据结构与算法、Explain

为什么建议InnoDB表必须建主键?并且推荐使用整型的自增主键? 如果不由我们人工去创建主键,mysql也会帮我们去建立主键,没有必要把这么简单地工作交给Mysql。整型比较比UUID比较要快,而且更加节省空间。 设置自增有一个考虑就是在插入元素数据的时候由于需要维护一颗B+树,这颗树根据主键排序的 ......
数据结构 底层 算法 索引 Explain

【入门】Go语言流程控制

一、if判断 1.1 单if结构 语法: if 条件判断 { 代码句 } 案例:判断是否成年了 package main import "fmt" func main() { var age uint fmt.Println("请输入您的年龄:") fmt.Scan(&age) if age >= ......
流程 语言

Go语言基础(二)

写在前面 上次的博客主要介绍了Go语言中的变量和if,for循环等。见Go语言基础(一)。 这次主要来学习一下Go语言中的函数,数组与切片。 函数的具体定义 基本定义 直接上例子: func add() { fmt.Println("Hello World") } func max(num1 int ......
语言基础 语言 基础

简单数据结构做题记录

CF526F Pudding Monsters 典题,发现这本质上是一个一维问题,一个区间合法当且仅当 $\max - \min = r - l$,枚举右端点维护左端点的变化量,用两个单调栈维护到 $r$ 的最大最小,用线段树维护区间最小值及其个数,由于 $[r, r]$ 满足条件且 $\max - ......
数据结构 结构 数据

Go 语言 new 和 make 关键字的区别

原文链接: Go 语言 new 和 make 关键字的区别 本篇文章来介绍一道非常常见的面试题,到底有多常见呢?可能很多面试的开场白就是由此开始的。那就是 new 和 make 这两个内置函数的区别。 其实这个问题本身并不复杂,简单来说就是,new 只分配内存,而 make 只能用于 slice、m ......
关键字 关键 语言 make new

(我的)R语言环境准备

安装WSL2 参考这里 换源 参考这里 build-essential(gcc,g++,make) 参考这里 安装最新版本的R (4.x.x) 参考这里 安装Rstudio-server 参考这里 ......
语言 环境

【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系

并发编程的难题和挑战 在并发编程的技术领域中,对于我们而言的难题主要有两个: 多线程之间如何进行通信和线程之间如何同步,通信是指线程之间以何种机制来交换信息。 多线程的线程通信机制 在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。 共享内存的方式,多线程之间共享公共的状态(变量),那么 ......
盲点 JVM 难题 模型 内存

1、内存分区模型

C++在程序执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统进行管理的。 全局区:存放变量和静态变量以及常量。 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。 内存四区的意义: 不容区域存 ......
模型 内存

c语言 俄罗斯方块源码

#include <windows.h> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> #include <stdbool.h> /* ¹ÜµÀ¾ä±úµÄ¶¨Òå */ HANDLE hStd ......
方块 源码 语言

【学习总结】内存对齐学习汇总

1.内存对齐 1.1 什么是内存对齐 操作系统一般是按照一定长度对内存数据进行处理的,我们常见的32位和64位操作系统,他们默认处理内存的长度分别是4bytes和8bytes。 因此我们在写程序的时候,也需要考虑这一点,如果不考虑内存对齐,考虑如下一个结构体: struct A { short s; ......
内存

语言资源

语言资源 行政 2023 年 3 月 2 日 约4分钟 在本页 通过外部文件使用语言资源 为应用程序的语言常量创建语言资源 默认语言资源 使用动态语言资源加载的演示项目 Delphi标准建议对依赖于语言的常量字符串使用资源字符串和 dfm 文件的各个版本。 EhLib 自第 9 版起使用略有不同的技 ......
语言 资源

第4章 —— 变量、作用域与内存

4.1 原始值和引用值 原始值是最简单的数据,引用值是存储在内存中的对象。保存原始值的变量是按值访问的,引用值的变量是按引用访问的。 区别: 原始值大小固定,保存在栈内存上;引用值是对象,保存在堆内存上。 原始值不能添加属性,只有引用值可以动态添加属性。 原始值的初始化可以只使用字面量形式;如果使用 ......
变量 内存 作用

java----内存模型

内存模型 一个对象的内存图 方法区开始运行,先找到Main函数,然后将这个方法入栈.new将会在堆空间中开辟空间,里面有成员变量和成员方法(注意,成员方法保存的是方法区的成员方法的地址值).new将会把地址返回给创建的对象,保存起来.访问成员变量只需要一步,访问成员方法需要两步.并且将成员方法入栈. ......
模型 内存 java

获取类的运行时结构

package edu.wtbu;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;public class Demo01 { public stat ......
结构

Javascript之V8内存和垃圾回收讲解

1 Javascript内存 1.1 Javascript引擎 常见JavaScript引擎有V8,JavaScriptCore,TraceMonkey,JScript。JavaScript在不同引擎中的内存模型实现不同,其中V8引擎开源且市占率远高于其它引擎,因此本文将围绕V8进行讲解。 在学习之 ......
Javascript 内存 垃圾