baskbull baskbull
3年前
操作系统学习笔记 原来自旋锁还可以这样实现!
在java中我们知道对线程使用CAS(compareandswap)来实现自旋锁,在没有学习操作系统之前,我以为这是唯一一种方法了。但是今天学到了操作系统中的同步互斥,终于明白了原来CAS、TS、Swap这些都是硬件提供的原子操作罢了!不仅CAS可以实现自旋锁,TS(TestandSet)同样可以!临界区临界区进程中访问临界资源的一段需要互斥执行
Wesley13 Wesley13
3年前
java并发编程读书笔记
每天都应该多读点书嘛,笔记使用思维脑图的方式第一章并发编程的挑战总的描述了并发编程时会遇到的问题,也就是挑战。1.并发时的性能和串行相比较(就是哪个执行的更快)2.并发时会碰到到线程问题,死锁!3.一些资源限制下的并发编程的问题!并发编程挑战(https://blog.img.zeroone.t
Stella981 Stella981
3年前
Skynet 初探(1) 之 echo 复读机
  最近在关注云风大神基于CLua写的Skynet网络框架!采用单进程多线程的Actor并发模型,每个Actor都可以理解成一个服务(协程),服务之间的通信也是采用消息传递的机制与golang、erlang很像。    但是由于大神们的境界太高并且手册、文档较少,所以对初学者来说确实有点难入门。基本只能在目录下的examples与test目录下看实
Stella981 Stella981
3年前
Redis 总结精讲
本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并发竞争问题
Wesley13 Wesley13
3年前
JAVA面试题汇总
没有什么套路,就是直接上干货!!!最新Java面试题汇总整理连答案一块儿分享给大家,希望对大家有帮助~之后还会推出Java面试题系列文章,敬请关注!按照技术模块:Java热点技术、多线程、微服务、JVM、Redis、消息队列、SQL相关的面试题。不要走开,稍后更精彩!1、面向对象的特点有哪些?抽象、继承、封装、多态。2、接口和抽象类
Wesley13 Wesley13
3年前
JAVA并发编程
<centerJAVA并发控制</center一为什么需要并发控制之所以要控制并发是因为存在资源的竞争,假设不存在竞争的临界资源,并发控制也就不存在了。控制是为了能够控制各个线程合理正确的使用资源。并发的控制在各个编程语言都存在对应的实施方案。也有一些语言在这方面作的很好,比如:erlang以及新出的rust,它们在整个语言
Wesley13 Wesley13
3年前
UAVStack功能上新:新增JVM监控分析工具
UAVStack推出的JVM监控分析工具提供基于页面的展现方式,以图形化的方式展示采集到的监控数据;同时提供JVM基本参数获取、内存dump、线程分析、内存分配采样和热点方法分析等功能。引言作为AllInOne的智能化服务技术栈,UAVStack提供了非常全面的监控数据采样功能,同时支持数据监控与预警。近期,我们整合了原有的数据采集展示功能,新
Stella981 Stella981
3年前
2019年Java中高级面试题总结(7)
81、说出几条Java中方法重载的最佳实践?下面有几条可以遵循的方法重载的最佳实践来避免造成自动装箱的混乱。a)不要重载这样的方法:一个方法接收int参数,而另个方法接收Integer参数。b)不要重载参数数量一致,而只是参数顺序不同的方法。c)如果重载的方法参数个数多于5个,采用可变参数。82、在多线程环境下
Stella981 Stella981
3年前
PyQt5综合实践—TCP服务器
目的:实现一个可以用于接收和发送文本的TCP服务器。思路:1\.两个QLineEdit用于服务器ip和port的输入,同时会限制ip和port的输入。2\.一个QPushButton,点击后开始“监听”,并把连接的过程放到一个线程thread中,这样不会在等待连接的过程中造成程序阻塞。3\.一个QlineEdit用于显示连接后的客户端
Wesley13 Wesley13
3年前
Java 开发, volatile 你必须了解一下
并发的三个特性首先说我们如果要使用volatile了,那肯定是在多线程并发的环境下。我们常说的并发场景下有三个重要特性:原子性、可见性、有序性。只有在满足了这三个特性,才能保证并发程序正确执行,否则就会出现各种各样的问题。原子性,上篇文章说到的CAS和Atomic\类,可以保证简单操作的原子性,对