相关分享
嵌入主线程消息循环的任务调度器
这篇文章记录了 soluna/ltask 在移植到 wasm 和非 Windows 平台过程中遇到的一个典型工程难题:如何在主线程事件循环中执行特定任务,同时仍保留原有多线程调度模型。
问题的核心来自图形 API 和平台约束。sokol 并非线程安全,OpenGL 又依赖当前线程状态,而 wasm 环境下主线程、worker、pthread API 的边界进一步放大了调度复杂度。
作者的解决思路不是重写整个调度器,而是在 ltask 中“打洞”:让某些必须在主线程回调中执行的 Lua 任务,临时从调度表中移出,由主线程接管执行,完成后再归还给调度器。
文章最有价值的地方,是把 coroutine、Lua 虚拟机、C 栈、主线程事件循环和图形 API 约束放在同一个工程场景中分析。它不适合泛泛阅读,但对做游戏引擎、wasm 移植或复杂运行时调度的开发者很有参考价值。
Android|使用阿里云推流 SDK 实现双路推流不同画面
想知道如何在 Android 中通过阿里云 SDK 实现双路推流不同画面?本文介绍了一个巧妙的解决方案,虽然阿里云 SDK 不支持原生多路推流,但通过跨进程调用,实现了同时推送不同区域的画面,适用于直播和录播场景的分离展示。开发者不容错过的实战分享,赶快阅读!
Android|WebView 禁止长按,限制非白名单域名的跳转层级
本文探讨了如何在Android应用中通过WebView限制网页内容访问。作者介绍了通过WebView的JavaScript接口和URL拦截机制来控制用户访问的具体方法,包括如何过滤不需要的URL请求和增强内容安全性。这些技术可以帮助开发者有效地管理WebView中的内容,防止加载不安全的页面或执行恶意代码。
JVM 剖析花园:2 - 透明大页
大页面是提高应用程序性能的简单技巧。Linux 内核中的“透明大页”功能使其更易于使用。JVM 中的“透明大页”支持使其易于选择。尝试大页面总是一个好主意,尤其是当你的应用程序有大量数据和大堆时。
JVM 剖析花园:1 - 锁粗化及循环
虽然锁粗化并不适用于整个循环,但另一种循环优化方法—循环展开—为常规锁粗化创造了条件,一旦中间表示开始看起来好像有 N 个相邻的锁-解锁序列,就可以进行锁粗化。这不仅能带来性能上的优势,还有助于限制粗化的范围,避免对过大的循环进行过度粗化。
协程和线程的历史
昨天运营商线路出了问题,体验了一把电话线拨号上网一样的网速。
打开浏览器是这样的场景:
先白屏一会儿。
逐渐显示出网页上的全部文字。
卡一会儿。
慢慢地把网页上的所有图片显示出来。
正在无聊地等待网页加载的时候阴差阳错地意识到浏览器这种一边渲染一边下载的工作方式在历史上还促成了协程和线程这一概念的产生。那么就来讲一讲故事吧。
Go单线程运行也会有并发问题
一个Go大佬群中严肃的讨论了一个问题:Go程序单线程多goroutine访问一个map会遇到并发读写panic么?
答案是肯定的,因为出现了这个问题所以大家才在群中讨论。
为什么呢?因为单线程意味着并行单元只有一个(多线程也可能并行单元只有一个),但是多goroutine意味着并发单元有多个,如果并发单元同时执行,即使是单线程,可能就会产生数据竞争的问题,除非这些goroutine是顺序执行的。
深入 Android 可信应用漏洞挖掘
重点介绍了主流厂商的TEE环境中的TA实现以及常见的攻击面并分享了一些针对TA做安全研究的技巧与方法,比如如何尽可能快速的拥有一台具备Root权限的手机用于研究与测试。同时还介绍了如何实现对TA进行模拟以及使用到的Fuzzing技术和部分调优策略。
Android|集成 slf4j + logback 作为日志框架
最近在做一个 Android APP 的日志改造,我搜了一下「Android 日志框架」,大多网友推荐的是 logger、timber、xLog 等等,看着也不错。不过出于几年后端开发的经验和习惯,我进一步了解,发现熟悉的 log4j 和 logback 在 Android 上也有人做过适配,所以最终决定使用 slf4j + logback,以在前后端开发中取得一致的体验。

讨论 · 1 条
在计算机操作系统中,进程是进行资源分配和调度的基本单位,同时每个进程之内也可以存在多个线程。那么在Android系统(Linux Kernel)中,进程是如何去抢占资源,线程又是如何根据优先级切换呢,本文将尝试剖析这个问题,研究nice在Linux以及Android系统中的应用。
一些概念
进程 是计算机系统中,程序运行的实体,也是线程的容器。
线程 是进程中实际执行单位,一个线程是程序执行流的最小单元。在一个进程中可以有多个线程存在。