
笔记
NoctCYQ
这个作者很懒,什么都没留下…
展开
-
JAVA垃圾回收机制
JAVA相比C++简化了一些,取消了指针,新增了垃圾回收机制。垃圾回收主要是针对堆和方法。 垃圾回收前首先要判断垃圾,判断某个对象是否是垃圾的算法包括引用计数法和可达性分析法。 清除算法包括标记-清理法;标记-压缩法;复制法;分代收集法。分代收集就是将堆分为新生代和老年代。新生代中对象寿命较短,采用复制法;老年代采用标记法。 ...原创 2020-07-29 20:54:40 · 154 阅读 · 0 评论 -
悲观锁,乐观锁,共享锁,排他锁,自旋锁
悲观锁比较悲观,认为并发大概率导致冲突,所以要加锁防止并发。乐观锁比较乐观,认为并发小概率导致冲突,所以仅在提交更新时监测冲突。 悲观锁包括共享锁(读锁)和排它锁(写锁)。共享锁就是多个事务可以同时读某一资源,而排他锁意味着一个事务获得写权限时,其他事务只能等待。 而自旋锁是排它锁的一种实现。当线程获取锁而锁被其他线程占用的时候,线程不会发生状态转换,保持active的状态。自旋锁的优点是执行速度快,缺点是使用不当会导致CPU占用率高。此外,自旋锁还可以关注公平性和可重入性的问题。 ...原创 2020-07-29 20:06:20 · 555 阅读 · 0 评论 -
TCP拥塞控制机制
当延迟出现时,为防止通讯双方不断重传,在网络中注入过多数据,所以建立了拥塞控制机制。而拥塞控制包括四个算法:慢启动,拥塞避免,快重传,快恢复。 先来介绍一些背景: 1.TCP有一个计时器,可以判断超时。 2.快速重传指接收方收到失序报文段后立刻发出重传确认。而快速重传算法规定发送方一旦收到3个重复确认就立即重传,不用等到计时器超时。 以上是背景。 建立连接后首先进入慢启动算法,以1为拥塞窗口,每次传输成功将窗口大小翻倍,直到窗口大小达到阈值。 达到阈值后开始拥塞避免算法,控制窗口的递增速度从翻倍的指数级减小原创 2020-07-29 19:56:33 · 364 阅读 · 0 评论 -
多人GitHub或Gitee开发需要的git代码基础
按顺序整理一下多人合作开发一个项目时,作为开发者需要经常使用的git代码和需要的操作 1.git clone 项目地址 我们参与一个项目时,经常是在已有的代码上做修改。这时,clone可以从仓库中获取代码 2.git checkout 分支名称 很多项目中会将最新版本和稳定版本分开,而作为开发人员,我们需要拿到的经常是最新版本,所以需要用checkout命令切换到需要的分支。 在此过程中我们可以用git branch -a查看分支、用git checkout -r创建分支。 3.fork 将参与开发的仓库“原创 2020-06-10 21:19:44 · 211 阅读 · 0 评论 -
Python的self
分享一下对Python的self的理解。水平不高,可能有错。。。 1 self是什么 self是Python类方法的第一个变量,是约定俗成的,一般写self,也可以写one,your name等。 2 什么时候要写self原创 2020-05-13 08:56:40 · 155 阅读 · 0 评论 -
小白需要知道的git命令
小白需要知道的Git命令 git remote add git remote -v git add file_name/ git commit -m “备注” git pull git push origin master原创 2020-05-09 01:10:15 · 159 阅读 · 0 评论