我只想知道为什么非阻塞并发比阻塞并发更好。在阻塞并发中你的线程必须等到其他线程完成它的执行。所以在这种情况下线程不会消耗 CPU。
但是,如果我谈论非阻塞并发,线程不会等待获得锁,如果某些线程包含锁,它们会立即返回。
例如在ConcurrentHashMap类中,put()方法内部有tryLock()一个循环。其他线程将处于活动状态并不断尝试检查锁是否已被释放,因为tryLock()它是非阻塞的。我假设在这种情况下,不需要使用 CPU。
那么暂停线程直到其他线程完成执行并在工作完成时唤醒线程不是很好吗?