07 2020 档案
摘要:VSCode配置Rust开发环境 在商店中输入rls,选择rust,点击Quick start中的下载链接。这个Rust插件你也要记得下。 跳转后来到下载界面,点击下载。 运行下载好的exe文件,命令行输入1按下回车即可。 安装完毕后在命令行输入rustc --version,如果能输出版本号则表示
阅读全文
摘要:哈希算法 如果我们用(用户id)%服务器机器数这样的方法来分配服务器。 虽然我们能保证数据的均匀性,但稳定性差,比如我们增加一个节点,会导致大量的映射失效。 1%3 == 1%4 2%3 == 2%4 3%3 != 3%4 4%3 != 4%4 这就难搞了,3之后的全乱了,直接体验了一把缓存雪崩。
阅读全文
摘要:依赖倒置 啥是依赖倒置?依赖倒置是SOLID原则之一,词的字面意思就是将依赖关系的倒置。 其实依赖倒置大家早就会了,这个实际上就是面向接口编程。举个例子,现在电子产品更新换代快,可能没过多久咱们就想换一台电脑玩玩。即使电脑的品牌不同,但我们还是可以正常使用,总不会换个牌子就不会用了吧。 所以如果用代
阅读全文
摘要:生产者-消费者算是并发编程中常见的问题。依靠缓冲区我们可以实现生产者与消费者之间的解耦。生产者只管往缓冲区里面放东西,消费者只管往缓冲区里面拿东西。这样我们避免生产者想要交付数据给消费者,但消费者此时还无法接受数据这样的情况发生。 wait notify 这个问题其实就是线程间的通讯,所以要注意的是
阅读全文
摘要:用set get与直接设为public有什么区别 这事我刚学的时候也挺疑惑的。问老师就是说封装性,不要交给外人控制,比如年龄你就要在set里面设置判断条件,不能随便赋值。这么说确实有道理,但至于每个变量都set get一下吗,虽然说编译器好用,但有些时候,我好像直接设置成public也没什么关系。
阅读全文
摘要:Synchronized锁的是什么? 临界区与锁 并发编程中不可避免的会出现多个线程共享同一个资源的情况,为了防止出现数据不一致情况的发生,人们引入了临界区的概念。临界区是一个用来访问共享资源的代码块,同一时间内只运行一个线程进入。 那么如何实现这个临界区呢?这就用到我们的锁了,当进程想要访问一个临
阅读全文
摘要:写命中 写直达(Write Through) 信息会被同时写到cache的块和主存中。这样做虽然比较慢,但缺少代价小,不需要把整个块都写回主存。也不会发生一致性问题。 对于写直达,多出来%10向主存写入的存储指令使得其比其单纯向Cache写入的速度慢上将近10倍。这种速度不一致的问题,不管是在硬件结
阅读全文
摘要:多线程基础 并行与并发 并发是指一个处理器同时处理多个任务。 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 打个比方:在并发的状态下,餐厅里只有一个厨师,尽管他做事利索,餐厅的客人等待每道菜的时间都不会太久。没有客人觉得上菜慢,但对于厨师,在某个时间点上,他只能炒某一桌客人的菜。并行
阅读全文
摘要:什么是Cache地址映射 主存的容量比Cache要大的多,所以我们得采用多个主存块映射到同一个Cache行中的方法,将要访问的局部主存区域取到Cache中。映射方法有:直接映射,全相联映射,组相链映射 直接映射 直接映射是最简单粗暴的办法: (块地址)mod(cache中的块数) 一个内存块地址始终
阅读全文

浙公网安备 33010602011771号