如果最近您收到了MacOS 14.4的升级提醒,那么建议你暂时先不要升级!
在x上,Java开发领域的一些大v们,也发现了这个问题,并提醒大家不要升级。
根据Java官方发布的文章了解到,该问题主要是由于macOS上运行的进程可能会访问受保护内存区域中的内存。在 macOS 14.4 更新之前,在某些情况下,macOS 内核会通过向进程发送信号 SIGBUS 或 SIGSEGV 来响应这些受保护的内存访问。然后该进程可以选择处理该信号并继续执行。而在最新 macOS 14.4 中,当线程在写入模式下运行时,如果尝试对受保护的内存区域进行内存访问,macOS 将发送信号SIGKILL。该进程无法处理该信号,并且该进程将无条件终止。
更多关于该问题的Java官方文章可见:
https://blogs.oracle.com/java/post/java-on-macos-14-4
欢迎关注博客连载的Java新特性专栏:
https://www.didispace.com/java-features/
目前该问题主要受影响的Mac机型和Java版本包括:
- Mac机型:M1、M2、M3(Apple Silicon m* 芯片)
- Java版本:Java 8 - Java 22 所有版本
M系列的芯片已经发布挺久了,很多开发者都已经开始使用,同时Java版本的影响范围几乎是全部,所以这个问题的影响范围还是非常大的。当然,如果还在使用Intel芯片的话,这次不受影响。