进阶技术:linux arm32是如何调用c main的-编程思维

前言: Linux x64通过qemu的rdinit方式调用的C Main,实际上是通过load_elf_binary(加载和解析elf)和start_thread(设置Ip和sp),用缺页异常来调用。那么Arm32里面是如何调用C Main的呢?本篇看下。 概括: Arm32也是通过load_elf_binary加载被 gcc-arm-linux-gnueabi编译的C Main Demo

如何避免让线程摸鱼,请用异步技术 async await 拿捏他~-编程思维

发现问题 你点了外卖后,会一直不做其它事情,一直等外卖的到来么? 当然不会拉! 我们来看看代码世界的: public void Query(){ // 当前线程 向 数据库服务器 发起查询命令 // 在 数据库服务器 返回数据之前,当前线程 一直等待,不干活了!!! var data = Database.Query(); } 假设在一个请求响应中: 线程用 5ms

浅谈js词法环境-编程思维

JavaScript 词法环境 本文主要讲解JS词法环境,我们将看到什么是词法环境,词法范围如何工作,函数内部的名称如何解析,内部属性,弄清楚词法环境利于我们理解闭包。让我们开始吧... 什么是词法环境? 在理解闭包时,最大的混淆来源是术语“词汇环境”,或者只是“词汇”这个词。在计算机科学中术语“词汇”仅表示“源代码”,或者换句话说,“与写的代码有关”。 大家请考虑以下代码: var a =

sqlserver 的 truncate 和 delete 有区别吗?-编程思维

一:背景 1. 讲故事 在面试中我相信有很多朋友会被问到 truncate 和 delete 有什么区别 ,这是一个很有意思的话题,本篇我就试着来回答一下,如果下次大家遇到这类问题,我的答案应该可以帮你成功度过吧。 二:区别详解 1. 思考 从宏观角度来说, delete 是 DML 语句, truncate 是 DDL 语句,这些对数据库产生破坏类的语句肯定是要被 sqlserver 跟踪的,

探索:优雅地实现异步方法的并行化-编程思维

接上篇 通过一个示例形象地理解C# async await 非并行异步、并行异步、并行异步的并发量控制 前些天写了两篇关于C# async await异步的博客, 第一篇博客看的人多,点赞评论也多,我想应该都看懂了,比较简单。 第二篇博客看的人少,点赞的也少,没有评论。 我很纳闷,第二篇博客才是重点,如此吊炸天的代码,居然没人评论。 博客中的代码,就是.NET圈的顶级大佬也没有写过,为什么这么说

火山引擎 dataleap:3 个关键步骤,复制字节跳动一站式数据治理经验-编程思维

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成、开发、运维、治理、资产、安全等全套数据中台建设,降低工作成本和数据维护成本、挖掘数据价值、为企业决策提供数据支撑。 本篇文章主要围绕火山引擎 DataLeap 一站式数据治理实践展开分享,从数据治理思路、平台建设

以交互的方式升级esxi主机-编程思维

以交互的方式升级ESXi主机 环境说明: 需求:要将 ESXi 6.0 主机和 ESXi 6.5 主机升级到 ESXi 6.7,可从 CD、DVD 或 USB 闪存驱动器引导 ESXi 安装程序。 注意:在升级之前,请考虑断开网络存储的连接。此操作可缩短安装程序搜索可用磁盘驱动器的时间。    断开网络存储时,断开连接的磁盘上的任何文件在安装时都不可用。请勿断开包含现有 ESXi 安装的 LUN

自监督单目深度估计研究-编程思维

注:刚入门depth estimation,这也是以后的主要研究方向,欢迎同一个方向的加入QQ群(602708168)交流。 1. 论文简介 论文题目:Digging Into Self-Supervised Monocular Depth Estimation Paper地址:https://openaccess.thecvf.com/content_ICCV_2019/papers/Go

构建api gateway之 健康检查-编程思维

Healthcheck 由于服务无法保证永远不会下线,而且下线时不一定能有人员能及时发现, 所以api gateway 一般会引入一个监工 Healthcheck, 像大家每年体检一样定时确认服务是否存活。 这样就可以在上游节点发生故障或者迁移时,将请求代理到健康的节点上,最大程度避免服务不可用的问题。 一般其分为主动检查和被动检查。 主动检查 其一般为使用单独的线程、进程、甚至独立的程序的探针

【cto变形记】驱动力的选择-编程思维

  前言:每个人做事,都有着各种动机在里面,有时候看似不可理解的行为或者选择,初一看,可能是‘认知’,其实深层次实际是内在驱动力使然。例如,当一个人找我们问各种问题的时候,我们往往会先问‘你的意图’是什么?只有知道了你的意图,我们才知道如何回答!     诚然,在技术道路上,成为一个CTO有很多的路径。正如自己也是从开发人员,在技术的加持下,在机会的青睐下,在同伴的认可下幸运地走到了这个位置。仔

unicode编码-编程思维

介绍 Unicode 编码 Unicode 的全称是 Unicode 标准(The Unicode Standard)。 Unicode 又被称为:统一码、万国码、统一字元码、统一字符编码。 Unicode 至今仍在不断增修,每个新版本都加入更多新的字符。目前 Unicode 最新的版本为 2021 年 9 月 14 日公布的 14.0.0,已经收录超过 14 万个字符。 技术是为了解决问题而

chatgpt vscode 体验-编程思维

     出现如下问题多输几次问题       体验秘钥 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   多人用可能有点卡,重在体验。   自己(中国)想注册账号如下 步骤一:找到入口 搜索OpenAI进入主页——页面左下角点击进入ChatGpt页面,或在浏览器地址栏输入链接:https://openai.com/blog/cha

javascript 评测代码运行速度-编程思维

一、使用 performance.now() API 在 JavaScript 中,可以使用 performance.now() API 来评测代码的运行速度。该 API 返回当前页面的高精度时间戳,您可以在代码执行前后调用它来计算代码执行所需的时间。 例如: let t0 = performance.now(); // 执行需要测试的代码 for (let i = 0; i < 100

grafana 系列文章(十二):如何使用loki创建一个用于搜索日志的grafana仪表板-编程思维

概述 创建一个简单的 Grafana 仪表板, 以实现对日志的快速搜索. 有经验的直接用 Grafana 的 Explore 功能就可以了. 但是对于没有经验的人, 他们如何能有一个已经预设了简单的标签搜索的仪表板,以帮助一些团队在排除故障时快速找到他们正在寻找的东西。虽然 Explore 很适合这个用例,但对于第一次使用的人,或者半夜收到告警的人来说,也可能有点令人生畏。 所以, 尝试通过一些

《terraform 101 从入门到实践》 第一章 terraform初相识-编程思维

《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。 初闻不知Terraform,再闻已是云中人。 什么叫基础设施即代码? 在以前,当我们需要把应用部署在服务器时,需要购买多台服务器和机房、组装交换机和网络、不间断电源UPS等。随着云时代的到来,我们可以在IaaS(Infrastr

真正“搞”懂http协议11之代理服务-编程思维

  代理,其实全称应该叫做代理服务器,它是客户端与服务器之间得中间层,本质上来说代理就是一个服务器,在HTTP的链路中插入的一个中间环节,就是代理服务器啦。所谓的代理服务就是指:服务本身不生产内容,而是处于中间位置转发上下游的请求和响应,具有双重身份。面向下游的用户时,表现为服务器,代表源服务器响应客户端的请求。而面上上游源服务器时,又表现为客户端,代表客户端发送请求。   我们发现,其实代理服

100 行 shell 写个 docker-编程思维

作者:vivo 互联网运维团队- Hou Dengfeng 本文主要介绍使用shell实现一个简易的Docker。 一、目的 在初接触Docker的时候,我们必须要了解的几个概念就是Cgroup、Namespace、RootFs,如果本身对虚拟化的发展没有深入的了解,那么很难对这几个概念有深入的理解,本文的目的就是通过在操作系统中以交互式的方式去理解,Cgroup/Namespace/Roo

支付对接常用的加密方式介绍以及java代码实现-编程思维

京东科技 姚永健 一、术语表: 1.对称算法 加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。 对称算法可分为两类。一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。另一类算法是对明文的一组位进行运算,这些位

css 3 所有的选择器整理(2023.2)-编程思维

你知道的和你不知道的所有选择器。不包含尚未广泛实现的,也不包含已弃用的。 基本的选择器规则(Selector) 类型(Type)选择器 直接用标签匹配特定的元素 span { ... } p { ... } 类(Class)选择器 以.开头,匹配含有这个 class 的元素 .info { ... } p.info { /* 匹配含有 info 类的 p 元素 */ ... } .in

对线面试官:浅聊一下 java 虚拟机栈?-编程思维

对于 JVM(Java 虚拟机)来说,它有两个非常重要的区域,一个是栈(Java 虚拟机栈),另一个是堆。堆是 JVM 的存储单位,所有的对象和数组都是存储在此区域的;而栈是 JVM 的运行单位,它主管 Java 程序运行的。那么为什么它有这样的魔力?它存储的又是什么数据?接下来,我们一起来看。 1.栈定义 我们先来看栈的定义,我们这里的栈指的是 Java 虚拟机栈(Java Virtual M