关于并发模型

线程模型可能是最经典的线程模型。在多核cpu诞生之前,线程模型就作为一种并发解决方案被提出来并且大规模使用了。

为什么是线程模型?第一是线程模型符合人类线性思维直觉,心智负担小。第二是线程是对进程的历史延续,实现难度低。第三是线程的overhead相对较小,当时的硬件条件不支持更复杂的并发模型。

但是随着多核cpu的发展,并发需求越来越大,人们发现简单粗暴的线程模型存在很多弊病,一些人试图通过软件工程的方式去回避线程模型的问题,一些人则试图扩展线程模型,另一些人则在考虑新的并发模型。

事件驱动,回调属于第一者,netty是其中的代表。轻线程,包括golang的goroutine和各种stackful的协程实现属于第二者。

actor模型则属于第三者,当然,因为os的并发模型是线程的,现在所谓的新的并发模型也只能是base on thread的。

GraalVM支持解释执行LLVM bitcode

graalvm这个东西从2016年关注,最初是因为其纯java实现的jit编译器而吸引注意,本以为是openjdk的一个项目,没想到如今正式发布后却是甲骨文的一个基于openjdk的产品。

相比起之前技术预览阶段,正式发布版本最大的不同是支持解释执行LLVM bitcode,这是否意味着jni接口可以下岗了呢?

使用bandizip代替7zip

多年来一直使用7zip作为日常的压缩/解压软件,但是其实7zip有一个长期存在的拖拽解压bug让人很不舒服,在很多三方窗口里拖拽解压是无效的,而最近发现的bandizip则无这个问题,且兼界面十分漂亮。

https://www.bandisoft.com/bandizip/cn/

该软件免费但不自由,支持创建zip、7z档案,解压包括rar的主流档案格式。一些细节方面的设置也十分讨喜,比如在解压tar格式档案时默认使用utf8编码解析路径。