首页 Home.

  • 在《嵩山版阿里Java开发手册》的日志规约中第一条明确规定了:应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架 (SLF4J、JCL--Jakarta Commons Logging)中的 API,使用门面模式的日志框架开发。

  • 在本篇文章中,我们将以后端异步获取和风天气 API 的例子来详细展示`CompletableFuture`和`Reactor`的异步编排任务如何在实战中应用。通过本章的学习,我希望读者能够对异步编排任务有更深的理解,以及对于编写异步任务时需要考虑的问题有更清晰的认识。

  • Java的并发编程是深奥而巧妙的,结构化并发和编排并发都属于并发编程的任何一个领域中的模型与技术。结构化并发主要关注如何更安全、更清晰地组织和管理并发的活动,比如线程或任务,使得它们的生命周期更易于理解和控制。编排并发主要关注如何更方便地描述和管理并发操作的顺序和依赖性。本期主要介绍编排并发以及与之相关的响应式编程初步内容。

  • Structured Concurrency is avaiable as an incubator API in the JDK 19. This is still about Project Loom, probably one of the most anticipated features of the JDK 19.

  • In traditional Java high-concurrency projects, context switching of threads brings huge memory overhead. The emergence of thread pools solved these problems to some extent, but Java threads still could not escape the control of the OS. Thus, virtual threads came into being.

  • ThreadLocal是一种实现将变量在各线程之间隔离的方案,也叫线程局部变量表。在Java中每个线程都拥有一个ThreadLocal下的ThreadLocalMap类型的变量,它用来存储定义在线程中的ThreadLocal对象,ThreadLocalMap的键是一个弱引用,指向对应的ThreadLocal对象。但值得每一位Java开发者注意的是ThreadLocal变量如果不及时`remove()`会造成严重的内存泄露问题。

  • CAS(Compare And Swap)比较并交换是JUC并发编程中最为重要的一个工具。它在处理并发问题时提供了一个非阻塞的解决方案,引入了一种全新的并发编程思维——乐观锁。这种思想预设所有线程在执行过程中都不会发生冲突,每一个线程都会乐观地认为自己能够成功执行,从而大大降低了线程之间的等待和阻塞,极大地提高了系统的并发性能。

  • synchronized是一种用于修饰同步代码块或方法的关键字。当一个线程进入被synchronized修饰的代码块或方法时,会先尝试获取括号中对象(对于同步方法则是当前类的实例)的对象锁。在JDK 1.6及之后的版本,synchronized锁具有锁升级的机制,分为偏向锁、轻量级锁和重量级锁。