baskbull baskbull
4年前
操作系统学习笔记 原来自旋锁还可以这样实现!
在java中我们知道对线程使用CAS(compareandswap)来实现自旋锁,在没有学习操作系统之前,我以为这是唯一一种方法了。但是今天学到了操作系统中的同步互斥,终于明白了原来CAS、TS、Swap这些都是硬件提供的原子操作罢了!不仅CAS可以实现自旋锁,TS(TestandSet)同样可以!临界区临界区进程中访问临界资源的一段需要互斥执行
刘望舒 刘望舒
4年前
Android输入系统(二)IMS的启动过程和输入事件的处理
Android框架层Android输入系统Android框架层本文首发于微信公众号「刘望舒」基于Android8.1前言在上一篇文章中,我们学习了IMS的诞生(创建),IMS创建后还会进行启动,这篇文章我们来学习IMS的启动过程和输入事件的处理。1.IMS的启动过程IMS的创建在SystemServer的startOtherServices方法中,
Wesley13 Wesley13
4年前
Android 模拟器下载、编译及调试
Android模拟器源码下载Android模拟器源码的下载与AndroidAOSP源码库的下载过程类似,可以参考Google官方提供的Android源码下载文档(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fsource.andro
Stella981 Stella981
4年前
Deskreen不错,在ubuntu上目前最好的无线投屏解决方案
这几天苦于没有个好用的wifi环境下的投屏桌面的方案,头发都掉了不少,我又离编程大神又近了一点点~~~找到的几个方案gnomenetworkdisplayshttps://gitlab.gnome.org/GNOME/gnomenetworkdisplays(https://www.oschina.net/action/GoToLink
Stella981 Stella981
4年前
Cocos Creator 运行时与本地代码双向通讯
cocoscreator游戏在发布到android/ios等平台时,难免要与本地原生平台互相调用。官方为我们提供了Java原生反射机制和ObjectiveC原生反射机制。以android的Java平台为例cocoscreator运行时调用android原生环境varojsb.reflection.cal
Stella981 Stella981
4年前
Nacos 服务注册中心探秘(一)
Nacos服务注册中心探秘(一)手机用户请横屏获取最佳阅读体验,REFERENCES中是本文参考的链接,如需要链接和更多资源,可以关注其他博客发布地址。平台地址CSDNhttps://blog.csdn.net/sinat\_28690417简书https://www.jiansh
Wesley13 Wesley13
4年前
JS 判断各种设备,各种浏览器
话不多说,直接看代码1、区分Android、iphone、ipad:varuanavigator.userAgent.toLowerCase();if(/android|adr/gi.test(ua)){//安卓}elseif(/\(i^;;(U;)?CPU.
Wesley13 Wesley13
4年前
Java并发编程原理与实战十八:读写锁
ReadWriteLock也是一个接口,提供了readLock和writeLock两种锁的操作机制,一个资源可以被多个线程同时读,或者被一个线程写,但是不能同时存在读和写线程。基本规则:读读不互斥读写互斥写写互斥问题:既然读读不互斥,为何还要加读锁答:如果只是读,是不需要加锁的,加锁本身就有性能上的损耗如果读可以不是最新数据
融云IM即时通讯 融云IM即时通讯
10个月前
融云IM干货丨推送通知自定义在不同设备上的兼容性问题如何处理?
处理推送通知自定义在不同设备上的兼容性问题,可以采取以下策略:1.适配不同Android版本Android8.0以上版本:使用NotificationChannel来创建通知渠道,并设置通知的属性,如灯光颜色、是否显示角标、震动模式等。Android8.0
陈杨 陈杨
3个月前
鸿蒙5开发宝藏案例分享---折叠屏开发实践
🌟最佳实践案例大揭秘!开发者的隐藏宝藏手册​​大家好呀!​​今天在翻鸿蒙文档时突然发现了一个惊天大宝藏——官方其实早就默默放出了​​几十个超实用开发案例​​,覆盖折叠屏适配、性能优化、UI框架、跨设备协同等核心场景!这些案例藏在文档深处,却都是实打实的"