baskbull baskbull
3年前
操作系统学习笔记 原来自旋锁还可以这样实现!
在java中我们知道对线程使用CAS(compareandswap)来实现自旋锁,在没有学习操作系统之前,我以为这是唯一一种方法了。但是今天学到了操作系统中的同步互斥,终于明白了原来CAS、TS、Swap这些都是硬件提供的原子操作罢了!不仅CAS可以实现自旋锁,TS(TestandSet)同样可以!临界区临界区进程中访问临界资源的一段需要互斥执行
Wesley13 Wesley13
3年前
java 源码编译
Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(叫“编译器的前段”更准确)——把\.java文件转变成\.class文件的过程;也可能是虚拟机的后端运行期编译器(JIT)把字节码转变成机器码的过程;还可能是指静态提前编译器(AOT编译器)直接把\.java文件编译成本地机器码的过程。Javac编译器
她左右 她左右
3年前
uni-app - 实现热更新及时提醒用户更新
1.原因分析在小程序更新开发版本之后,用户本地并没有对之前版本的小程序进行删除,那么再进入小程序的时候的版本是不会发生变化的,这是由于发版是异步执行,因此新版本将会覆盖的比较慢,本质是小程序的启动方式分为两种,冷启动与热启动。冷启动:指的是用户首次打开或小程序被微信主动销毁后再次打开的情况,此时小程序需要重新加载启动。热启动:指用户已经打开过某
红橙Darren 红橙Darren
3年前
C进阶 - 内存四驱模型
一.内存四驱模型不知我们是否有读过《深入理解java虚拟机》这本书,强烈推荐读一下。在java中我们将运行时数据,分为五个区域分别是:程序计数器,java虚拟机栈,本地方法栈,java堆,方法区。在c/c中我们将运行时数据,分为四个区域分别是:栈区,堆区,数据区,代码区。我们详细来介绍下:1.栈区:由编译器自动分配释放,存放函数的
外卖跑腿系统-H5+小程序+APP+PC
外卖跑腿系统H5小程序APPPC,打造吃喝玩乐购”一站式“生活圈·外卖跑腿系统打造本地万能生活服务平台,搭建集线上外卖点餐、团购线下消费、物流电商、裂变营销、跑腿配送于一体的线上外送服务,成熟的O2O系统,轻松接轨“互联网”。·用户端(H5小程序)打通微信生态公众号小程序流量入口,无需用户下载app,降低营销成本,加快用户裂变速度,提高复购率。微
Stella981 Stella981
3年前
Redis 总结精讲
本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并发竞争问题
Wesley13 Wesley13
3年前
linux查找文件命令find
 每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。
Stella981 Stella981
3年前
2019年Java中高级面试题总结(7)
81、说出几条Java中方法重载的最佳实践?下面有几条可以遵循的方法重载的最佳实践来避免造成自动装箱的混乱。a)不要重载这样的方法:一个方法接收int参数,而另个方法接收Integer参数。b)不要重载参数数量一致,而只是参数顺序不同的方法。c)如果重载的方法参数个数多于5个,采用可变参数。82、在多线程环境下
Stella981 Stella981
3年前
Seata是什么?一文了解其实现原理
一、背景随着业务发展,单体系统逐渐无法满足业务的需求,分布式架构逐渐成为大型互联网平台首选。伴随而来的问题是,本地事务方案已经无法满足,分布式事务相关规范和框架应运而生。在这种情况下,大型厂商根据分布式事务实现规范,实现了不同的分布式框架,以简化业务开发者处理分布式事务相关工作,让开发者专注于核心业务开发。Seata就是这么一个分布式事
Wesley13 Wesley13
3年前
Java 开发, volatile 你必须了解一下
并发的三个特性首先说我们如果要使用volatile了,那肯定是在多线程并发的环境下。我们常说的并发场景下有三个重要特性:原子性、可见性、有序性。只有在满足了这三个特性,才能保证并发程序正确执行,否则就会出现各种各样的问题。原子性,上篇文章说到的CAS和Atomic\类,可以保证简单操作的原子性,对