据我了解,当我们创建
Thread
时,我们使用 new 关键字。每当我们想要启动一个 start()
时,都会在新的 Thread
对象上调用 Thread
。
这让我问一个问题,为什么Java中Thread类的
start()
是synchronized
。
Java中Thread类的start()为什么是synchronized。
您不能多次启动一个线程。但如果两个线程同时尝试启动一个线程,情况会更糟。
为什么?
因为这会破坏阻止应用程序启动线程两次的逻辑!
所以...他们将
start
声明为 synchronized
并且避免了尴尬的竞争条件。