加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡水站长网 (https://www.0318zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

仍有年轻人不愿逃离互联网“大厂”

发布时间:2021-01-29 13:52:54 所属栏目:动态 来源:互联网
导读:尽管我应该警告您,但请引用作者的话:在阅读本书时,要做好努力。这不是一本好书,您可以在飞机上阅读并在着陆之前读完。这本书将使您努力工作。 实践中的软件架构 无论您扮演什么角色,在职业生涯中的某个时候,您都会遇到软件架构。这是一个充满很多问题

尽管我应该警告您,但请引用作者的话:"在阅读本书时,要做好努力。这不是一本好书,您可以在飞机上阅读并在着陆之前读完。这本书将使您努力工作。"

实践中的软件架构

无论您扮演什么角色,在职业生涯中的某个时候,您都会遇到软件架构。这是一个充满很多问题的复杂领域:象牙塔建筑师,泥泞不堪的大瀑布,瀑布工程的趋势等等。这就是为什么我认为人们对软件体系结构的实践教育比设计模式更为重要。
 

该书完全用押韵写成,并使用卡通漫画,解释了云如何在引擎盖下工作以及人们为保持云的运行所做的工作。听起来可能有些愚蠢(有时是愚蠢的),但是即使您没有IT方面的知识,这本书实际上也可以很好地解释技术概念。这也是很好的对话起点,很高兴向您的父母或配偶解释您整天在电脑后所做的事情。

Clean Code

罗伯特·C·马丁(Robert C. Martin)的干净代码(俗称"鲍勃叔叔")被许多人视为软件开发人员的经典读物。这本书摘录了什么是干净的代码以及如何编写。干净的代码很重要,因为它是我们防范巨大混乱的唯一武器。如果您曾经在第第十个项目中发现自己要重写旧版代码库,而只是为了重新陷入困境而陷入困境;这本书适合你。
 

经典使用场景:zookeeper为dubbo提供服务的注册与发现,作为注册中心,但是大家有没有想过zookeeper为啥能够实现服务的注册与发现吗?

这就不得不说一下zookeeper的灵魂 Watcher(监听者)。

什么是watcher?

watcher 是zooKeeper中一个非常核心功能 ,客户端watcher 可以监控节点的数据变化以及它子节点的变化,一旦这些状态发生变化,zooKeeper服务端就会通知所有在这个节点上设置过watcher的客户端 ,从而每个客户端都很快感知,它所监听的节点状态发生变化,而做出对应的逻辑处理。

简单的介绍了一下watcher ,那么我们来分析一下,zookeeper是如何实现服务的注册与发现。zookeeper的服务注册与发现,主要应用的是zookeeper的znode节点数据模型和watcher机制,大致的流程如下:
 

所谓虚拟内存就是假的、不是真正的物理内存,虚拟内存是给进程用的,操作系统维护了虚拟内存到物理内存的映射,当malloc返回后,程序员申请到的内存就是虚拟内存。

注意,此时操作系统根本就没有真正的分配物理内存,程序员从malloc拿到的内存目前还只是一张空头支票。

那么这张空头支票什么时候才能兑现呢?也就是什么时候操作系统才会真正的分配物理内存呢?

答案是当我们真正使用这段内存时,当我们真正使用这段内存时,这时会产生一个缺页错误,操作系统捕捉到该错误后开始真正的分配物理内存,操作系统处理完该错误后我们的程序才能真正的读写这块内存。

这里只是简略的提到了虚拟内存,实际上虚拟内存是当前操作系统内部极其重要的一部分,关于虚拟内存的工作原理将在《深入理解操作系统》系列文章中详细讨论。

完整的故事

现在,这个故事就可以完整讲出来了,当我们调用malloc申请内存时:

  1. malloc开始搜索空闲内存块,如果能找到一块大小合适的就分配出去
  2. 如果malloc找不到一块合适的空闲内存,那么调用brk等系统调用扩大堆区从而获得更多的空闲内存
  3. malloc调用brk后开始转入内核态,此时操作系统中的虚拟内存系统开始工作,扩大进程的堆区,注意额外扩大的这一部分内存仅仅是虚拟内存,操作系统并没有为此分配真正的物理内存
  4. brk执行结束后返回到malloc,从内核态切换到用户态,malloc找到一块合适的空闲内存后返回
  5. 程序员拿到新申请的内存,程序继续
  6. 当有代码读写新申请的内存时系统内部出现缺页中断,此时再次由用户态切换到内核态,操作系统此时真正的分配物理内存,之后再次由内核态切换回用户态,程序继续。

 

(编辑:衡水站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读