我们平常说的进程和线程更多的是基于编程语言的角度来说的,那么你真的了解什么是线程和进程吗?那么我们就从操作系统的角度来了解一下什么是进程和线程。...在给出了错误参数时,面向屏幕的交互式进程通常并不会直接退出,因为这从用户的角度来说并不合理,用户需要知道发生了什么并想要进行重试,所以这时候应用程序通常会弹出一个对话框告知用户发生了系统错误,是需要重试还是退出...如果我们能够正确的操作,使两个不同进程不可能同时处于临界区,就能避免竞争条件,这也是从操作系统设计角度来进行的。 尽管上面这种设计避免了竞争条件,但是不能确保并发线程同时访问共享数据的正确性和高效性。...21.jpg 从抽象的角度来看,我们通常希望进程的行为如上图所示,在 t1 时刻,进程 A 进入临界区,在 t2 的时刻,进程 B 尝试进入临界区,因为此时进程 A 正在处于临界区中,所以进程 B 会阻塞直到...通过使用这些过程,用户线程完全可以实现在用户空间中的同步,这个过程仅仅需要少量的同步。 我们上面描述的互斥量其实是一套调用框架中的指令。从软件角度来说,总是需要更多的特性和同步原语。
为什么TCP建立一定要三次呢?两次不行吗?...原因:双方要明确对方接收能力都是正常的,(客户端发之后,服务端可以确定客户端发送能力正常,服务端发送给客户端,客户端可以确定服务端的接收和发送能力正常,最后客户端发送确认,来确定客户端的接收能力。...浏览器无法预估脚本具体做了什么操作,索性全部暂停,等脚本执行完,浏览器再继续向下解析。...渲染过程优化(1)、标签语义化(使用合适的标签,如果不是w3c规定的标签,Tocken令牌和词法解析语法得识别分析,是不是wc3规定的)undefined(2)、减少标签嵌套(生成结构树嵌套太多,就得递归...表达式 结语通过阅读本文,相信小伙伴们对从输入URL到页面渲染的过程有了一个大概的理解。
作为一个从事区块链相关产品创业的从业者,今天就以数据结构的角度来看看区块链( Blockchain)技术。个人水平有限,如有错误的地方,欢迎留言拍砖。...乍一看这个定义还是比较学术性的,对于刚接触区块链的人来说,依然很难理解区块链到底是什么样子的。不过我们可以从中看出几个关键词分布式、点对点、加密、共识等等。...那么这个数据库到底长什么样子呢?...我觉得从区块链( Blockchain)字面上看可以从两个词区块( block)和链( chain)来理解:逻辑上它是一个链式( chain)结构,每个结点上就是一个区块信息( block),区块里面则存储了交易的信息...有人可能要问了,这是二叉树,如果区块中的交易个数为奇数,那么如何计算呢?那就将最后一个交易复制一份然后就可以组成满二叉树了。 这个 Merkle树有什么用呢?
什么是Java虚拟机 作为一个Java程序员,我们每天都在写Java代码,我们写的代码都是在一个叫做Java虚拟机的东西上执行的。但是如果要问什么是虚拟机,恐怕很多人就会模棱两可了。...在本文中,我会写下我对虚拟机的理解。因为能力所限,可能有些地方描述的不够欠当。如果你有不同的理解,欢迎交流。 我们都知道java程序必须在虚拟机上运行。那么虚拟机到底是什么呢?...这些都是虚拟机的外部特性,但是从这些信息来解释虚拟机,未免太笼统了,无法让我们知道内部原理。 从进程的角度解释JVM 让我们尝试从操作系统的层面来理解虚拟机。...从这个层面上来看,在执行一个所谓的java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程,而不是我们写的一个个的class文件。...本专栏后面的一些文章也参考了这三本书, 虽然讲解Java语法的书不计其数, 但是深入讲解虚拟机的书, 目前为止我就见过这三本,并且网上的资料也不是很多。
本文是杨晓峰老师关于腾讯基于OpenJDK的自研Kona JDK开源项目的详细介绍。 一、Tencent Kona 缘起 1. OpenJDK 经常听人谈到 OpenJDK,那它到底是什么呢?...2017年,经过三年的研发,JAVA 9发布了,这一年发生了一系列令人目不暇接的变化。...Java和JVM提供的易用的语法、跨平台能力、广泛的工具、类库等等,让JVM成为大数据领域的无冕之王,目前来看几乎没有同等竞争对手。...7.jpg 从大数据负载特点来看,经典GC算法存在一定程度的水土不服。...9.jpg 从大数据的业务特点来看,JVM机制也需要针对性修正和提高。
2 Subscription 的作用:起到发布订阅作用,一方面订阅 connect 包裹组件的更新函数,一方面通过 store.subscribe 统一派发更新。...4 connectAdvanced 形成真正包裹业务组件的 Hoc 接下来我们看一下 connect 返回的 connectAdvanced()到底做了什么,为了方便大家理解connect,我们这里先看看...() //返回HOC wrapWithConnect 接下来我们分析一下wrapWithConnect到底做了些什么?...接下来讲的就是整个 connect的核心了。我们来看一下负责更新的容器ConnectFunction 到底做了些什么?...总结 接下来我们总结一下整个connect的流程。我们还是从订阅和更新两个方向入手。 订阅流程 整个订阅的流程是,如果被connect包裹,并且具有第一个参数。
思路 2:分析 OBProxy 日志的目的是什么? 是看应用到 OBProxy 的前端连接处理是不是异常了。...发现 3.14 15:52:57 应用发生了报错: 既然抓到包了,现在面对的一个问题是怎么分析这些网络包,并找到我们需要的信息?...从客户端的角度来看过程 15:52:47 向 xx.xx.xx.9:3306 发起 TCP 连接请求(三次握手的 SYN),即 8359 号包。...服务端角度来看过程 15:52:47 向 1xx.xx.xx.12:4232 发 SYN+ACK 包,即 8360 号包。 15:52:48 重发 SYN、ACK 包,即 8517 号包。 ......这里面还有 ICMP 协议的包,信息是 Destination unreachable(Port unreachable),从前面的信息来看是服务端到客户端的 4232 端口发 SYN+ACK 包时报的
最近在考虑新一年的架构的时候,我就在想一个大数据平台核心竞争力到底是什么?每个平台发展的阶段可能不太一样,所以所需要的核心竞争力不同。...但是做架构,做设计的朋友一定要常常思考下你负责的平台到底核心竞争力是什么。 我们现在做的平台不是自用的,是销售给第三方。我觉得排在前三核心竞争力分别是: 1、业务敏捷性 敏捷:汉语中解释反应迅速快捷。...所以经常会碰到业务讲不清楚,业务构建不停的变化的问题。怎么适应这种变化的速度?这就需要平台在业务敏捷性上有建树。 业务敏捷性对平台有什么诉求?这就需要业务可以和技术分离。...那是因为从目前可见的业务模式来看,只有实时营销,实时推荐才可以直接带动收入,后分析多事从降低OPEX上角度去考虑的。所以从价值角度来看,应该着力发展实时业务,对应这平台来说也应该着力发力实时性。...是基于客户角度思考的核心价值观,所以一个平台一定要在性能上持续不断的优化和发力。
能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发......对于计算机来说,什么是那个不变的宗呢? 计算机模型 从物理角度看,晶体管的电容只有两种状态:开和关;从光传输的规律看,电压只有高低两种电压。这对应了数字世界的0和1(量子计算除外)。...不管虚拟世界多么纷繁复杂,追溯原点,从物理角度,我们可以从电容开始;从数学层面我们从二进制开始;从哲学层面,我们从阴阳开始。 计算机通电的过程很像宇宙大爆炸,接下来就是比特之旅。...冯-诺伊曼体系 比如,从组成计算机的金字塔来看,该体系到现在也是稳定的,不管是PC还是移动还是正在发生的物联网架构。计算机的核心部件还是这么几样东西:运算器、存储器、控制器,输入输出设备。...,我的理解是我们的思想不过是先人智慧的影子,我们长期使用后和身体融化一体罢了。 所以问题来了,我们到底要为自己辩护,还是为自己的思想辩护?如果是为自己的思想辩护,为什么要情绪化呢?
如果你想了解依图,了解中国人工智能行业的发展变迁,这是一份不可多得的资料。 ? 朱珑主题演讲 人工智能的发展,从文明变迁的角度来看,会是怎样的呢?...再从更加宏观的角度,利用哈勃望远镜来捕捉,则能够观测到的5亿年前的世界。 这便是从「非常小的世界」到「非常远的世界」的变迁。...所以,朱珑认为,以我们此时此刻为中心,来看过去30年的信息时代到底发生了什么,会有另一番收获,也能对未来到底如何变迁,有更深的理解。...而站在过去30年的基础上,来向前看智能时代又能得出什么结论? 朱珑说,智能时代什么时候开始,很难给出一个确切定义,但我们可以从现在回溯过去5年发生了什么。 首先是芯片算力方面。...而依图本身,也在这些基础上,开始提供性能更强、效率更高的解决方案。 依图到底要做什么?或者说,依图将要往何处去?
比如我说起苏州园林、佛教建筑、古罗马建筑这几种风格的建筑。或许你可能和笔者一样对建筑学一窍不通,但是如果你面前有一栋建筑,你依然可以快速的分辨出这栋建筑到底是佛教建筑的还是古罗马建筑,为什么呢?...而这些部分在这20年间,发生了无数次的独立部署和升级,又有无数的组件已经退出了历史舞台。...Web的面貌本身也以及发生了翻天覆地的变化,而Web的最核心的三部分(HTTP,URI,HTML)却保持着相对稳定的状态。这里面是不是有些值得思考的东西?...所以,想要理解REST是什么,必须要站在俯览Web的角度,以Web的上帝视角来看待Web,才能搞清楚REST对Web到底做了些什么。...或许你会觉得少了些什么,然而也说不上来到底少了什么。其根本原因在于看待REST的视角选的不合适。
虽然我知道写技术性的东西,在当下公众号不会有什么阅读量,但是有些选题还是要写的。...因此,Databricks注意到,客户有需求在后端跑生成的Spark,然后前端发送Spark代码过来。前端做本地的各种语法检查就比较两难。...这就同时解决了之前1,2,3这些方法的问题。那么问题来了,这种需求到底是伪需求,还是真的有很多客户需要。Databricks说有很多客户需要。...项目从开始到现在小半年过去了,进展怎么样呢?不能说一点事情都没做吧,但是我只能说Databricks投入的人力,和很多人期望的进展之间,是有矛盾的。...既然绝大部分的情况下,都没有bug,那么裸发字符串的选项2,对一个成熟的软件来说,也不是不能接受的选项。所以当产品成熟以后,很多产品就凑合着用选项2吧。
,抓包来看,客户端一直在建连,每次建连成功 3 秒以后就主动断开连接。...为什么这里三次握手成功以后会断开连接呢?这个现象其实挺诡异的,于是想到用 strace 看一下背后到底发生了什么。...strace -f -T -p 238289 -o strace-new.238289.out 在 strace 中找 connect 相关的调用,根据线程号过滤对应的日志,可以看到发生了哪些系统调用...但是这个跟抓包的行为就不一致了,从包上看,duboo 服务端有回复 SYN+ACK,但是 java 应用认为我没有收到,3s 超时。...先来看一下重连线程做了什么,重连线程的创建位于 com.alibaba.dubbo.remoting.transport.AbstractClient类中。
,语法又简单,对开发人员来说,实在是居家旅行,XXXX的必备利器。...python支持BSD的socket进行网络编程,其API跟C中的大同小异,先看看TCP方式的,说到网络编程,肯定会设计到server和client,分别来看下 TCP方式 server端 server...========================================== UDP方式 UDP号称无连接传输,全然没有TCP那么复杂,三次握手,错误重传之类的机制都没有,发的只管发,收得只管收...UdpClient() udpClient.tcpclient() 运行结果: 1) 先启动 udpserver.py,然后启动 udpclient.py,并且保证client先发后收,server先收后发...socket的处理,socket说到底跟文件句柄,文件描述符,管道描述符等都是一个概念,可以对其进行I/O处理,事实上,在UNIX类系统中,对socket的操作跟对文件句柄的操作没有任何形式上的差异。
,看到这个报警,自己感觉挺奇怪的,就产生了几个问题,一个是为什么不是每天都收到报警,另外一个问题是在那个时间段到底发生了什么,是否存在潜在的问题。...这样的话,似乎这个时间点还是有规律可循的,那么还是第一个问题,为什么不是每天收到报警,而是今天收到了报警。...继续逐个击破,首先是查看备库的文件系统,这样来看,空间也是快满了,但是已经跑了些年了,目前添加硬盘目前还是不实际的。就来看看有没有办法来做无米之炊。...可见临时数据文件也是后期加入的。 所以现在的问题就是确认是否可以删除多余的临时数据文件,比如给一个30G的是否足够,单纯从系统来看30G的大小应该是满足了。...那么这个问题就可以换个角度来看,为什么temp空间会有90G,同时数据库日志还有临时表空间不足的警告。 所以真是一环扣一环,稍后来进一步分析临时表空间使用超标的缘由。
可更改之后我傻眼了,为什么一直不生效?我陷入了沉思。 在继续描述之前,我们先来了解下到底什么是跨域以及常见的解决方案有哪些。...但是请求 B 的站点域是 domain-b.com,如果要发请求到 domain-b.com,就属于跨源访问,出于安全性考虑,浏览器限制脚本内发起的跨源 HTTP 请求。...在新增的这一组 HTTP 首部字段中,最重要的便是 Access-Control-Allow-Origin,其语法如下: 其中,origin 参数的值指定了允许访问该资源的外域 URI。...也就是说,整个事件出现的原因是因为请求参数异常。 至此,这个问题其实已经解决了,治标已经完成。 只是,这时我又产生了新的疑问,为什么请求参数异常没有走到业务逻辑处理而是出现了跨域问题 ?️...刨根问底一下 其实从问题的解决角度来说,到这里已经可以了,只不过刨根问底一下,为什么请求错误了会跳到淘宝的错误页,而不是显示 tomcat 的错误页呢?
让我们拉开我们的视野,不再死盯着虚拟DOM这一个单词,而是回望整个前端高速迭代的这几年,重新思考一下以下这些问题。 在没有虚拟DOM前,我们经历了什么? 是什么让程序员们萌生了使用虚拟DOM的想法?...虚拟DOM的优势到底是什么,是什么让它成为了时代的选择? 是什么推动了前端职能和功能的高速发展? 身为前端,我们经历了什么?...JQ凭借着其优异的兼容性和性能,在一代js框架中占据了主流。 ? 从当今的眼光来看,JQ依然是不可多得的好框架,得益于Sizzle选择器引擎的研发成功,其性能有了质的突破。...虚拟DOM的优势到底是什么,是什么让它成为了时代的选择? 正如之前说的,虚拟DOM是作为数据和真实DOM之间的缓冲层诞生的。...我们不如换个更落地的问题。 什么样的技术/项目,会成为受欢迎的项目,甚至引领环境的发展呢? 从我的角度来说。
是架设在业界使用最广泛的sqllite 数据库基础上的产品,虽然支持MYSQL的客户端,语法,但实际上后台数据的存储都是基于sqllite数据库的。...原理: PROXYSQL 通过判断默认 write组的连通性,我们可以做一下相关的实验来证实在MHA的状态下 1 到底proxysql 是怎么来判断数据库到底在线还是不在线 2 到底怎么来判断哪个是读库...我们可以将101 的 read_only 设置为OFF 看看会出现什么效果,可以看到写组中的 600组,多了101 这台机器。 ?...上方是官方文档,描述了 1 connect 连接的后端的成功和失败的,信息将存储在 mysql_server_connect_log 中 select * from mysql_server_connect_log...2 查看proxysql 与 mysql之间的连接的情况,通过 connect_success_time_us来看当前的网络连通的情况(可以反映一部分) ?
的怀抱了;但是我们从现在的角度看,JavaScript 的不少地方已经落后于时代,我们急需一门新的语言或者革命来代替它。...运算符,dynamic 类型都是在 C#,笔者从事 windows 开发近十年,从学术角度来看,笔者对 C#的喜爱溢于言表。...但是从工程角度来看,.Net 和 C#支持跨平台,但是他俩动作总是慢半拍,错过了 PC 互联网和移动互联网的机会,只在 Windows 平台流行了。...从 Java 被逐渐替代的经验教训中我们发现,目前 C++在应用层正处于城池渐失的状态;我们应该明白,应用层和底层框架的需求不同,不应该从顶到底都使用一套语言,现在 C++所失之城池就是新语言非常好的机会...使用Copilot从js转换为python 让我们继续展望,二十年后的发展趋势是什么? 探讨这个问题,我们要回到编程语言的初心:什么是编程语言?
所以,今天我们不准备做个流水账的介绍,一起来看看工程师甚至是 IT 决策者最关心的问题: JDK 更新如此频繁,我是否要考虑升级? 新的发布模式下,企业的 IT 策略需要做出什么样的调整?...从 JVM GC 的角度,JDK 11 引入了两种新的 GC,其中包括也许是划时代意义的 ZGC,虽然其目前还是实验特性,但是从能力上来看,这是 OpenJDK 的一个巨大突破,为特定生产环境的苛刻需求提供了一个可能的选择...不知道你有没有注意到,不知不觉中 Java 的应用场景发生了天翻地覆的变化,从单机长时间运行的 Java 应用,发展成为分布式、大的单体应用或小的 function、瞬时或长时间运行等,应用场景非常复杂...从 Java 类库发展的角度来看,JDK 11 最大的进步也是两个方面: 首先,是难得的现代 HTTP/2 Client API,Java 工程师终于可以摆脱老旧的 HttpURLConnection...Java 是最好的语言吗?不是,每个领域都有更合适的编程语言,没有无所不能的存在。 Java 语言到底有什么优势可以占据排行榜第一的位置呢?
领取专属 10元无门槛券
手把手带您无忧上云