无锁编程是一项挑战,不仅因为任务本身的复杂性,还因为要深入理解这个主题是非常困难的。
我第一次接触无锁(lock-free,又称为lockless)编程是Bruce Dawson优秀而全面的白皮书《Lockless Programming Considerations》。和很多人一样,我也有机会将Bruce的建议付诸实践,在Xbox 360等平台上开发和调试无锁代码。
大约 21 分钟
无锁编程是一项挑战,不仅因为任务本身的复杂性,还因为要深入理解这个主题是非常困难的。
我第一次接触无锁(lock-free,又称为lockless)编程是Bruce Dawson优秀而全面的白皮书《Lockless Programming Considerations》。和很多人一样,我也有机会将Bruce的建议付诸实践,在Xbox 360等平台上开发和调试无锁代码。
虚拟线程是轻量级线程,可以减少编写、维护和调试高吞吐量并发应用程序的工作量。虚拟线程在JDK 19
中作为预览特性引入,在JDK 21
中作为正式特性引入。
在其它语言中也有类似于虚拟线程的技术,例如Go
中的goroutine
。
关于虚拟线程的背景信息可以参考:JEP 444。
线程是最小的可调度单元,多个线程可以并发运行,在很大程度上,它们之间是独立运行的。 线程是java.lang.Thread
的一个实例。线程分为两种类型:平台线程(platform thread)和虚拟线程(virtual thread)。