wingjay / wingjay.github.io

blog for wingjay.
16 stars 12 forks source link

《Java 里如何实现线程间通信?》评论 #7

Open wingjay opened 7 years ago

wingjay commented 7 years ago

文章地址:http://wingjay.com/2017/04/09/Java%E9%87%8C%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%BA%BF%E7%A8%8B%E9%97%B4%E9%80%9A%E4%BF%A1%EF%BC%9F/

liuxing5yu commented 6 years ago

发现了一个问题,你在代码中没有考虑过A、B线程的执行顺序问题,这会导致一些问题。 两个线程启动时,A.start();B.start(); 并不意味着他们顺序启动,也有可能是B先启动,而A后启动,这在你的demo中就会导致问题,例如在demo3中如果B先启动,A后启动,那样A会一直wait。

wingjay commented 6 years ago

你说的是对的👍。

文章中是刻意忽略这个问题以保证demo更纯粹点,方便阅读更流畅。

myzhaoo commented 6 years ago

请问代码中的String类型变量加final修饰有何用意?

wingjay commented 6 years ago

内部类访问外部变量时需要,参考这里: https://stackoverflow.com/questions/27558425/local-variable-access-to-inner-class-needs-to-be-declared-final