不被包括在接口为什么同步方法(Why synchronized method is not incl

2019-07-18 16:41发布

当我使用synchronized在一个接口上的方法,所述编译器发出一个错误。 你能告诉我,为什么出现这种情况?

的原因是什么(逻辑),该synchronized不能被应用到方法的上interface

我试图让超过线程池的接口在这个环节 。 帮助我,使界面在我上面的代码。

Answer 1:

因为synchronized是一个实现细节。 该方法的一个实施可能需要做出的方法进行同步,而另外一个可能不需要它。 来电者并不关心方法是否是同步或不同步。 这不是合同,它告诉方法做什么的一部分。 其中同步技术,如果有的话,是用来履行合同是无关紧要的。



Answer 2:

同步是一个实现细节,并在接口不属于。

你可以有各种实现方式,可能是线程安全的,不涉及使用synchronized关键字。

您可以考虑使用一些注释,表明实现应该是线程安全的意图。 例如http://jetbrains.dzone.com/tips/concurrency-hot-try-jcip介绍了如何使用JCIP并发注解。

BTW。 而不是使用同步的,你可能想获得舒适与Java并发框架。 使用低级别的结构等直接同步被认为是一个位的抗图案的这些天。



Answer 3:

简单的答案是同步在谈论方法实现,但在接口中的所有方法都是抽象的,这意味着没有实现。



文章来源: Why synchronized method is not included in interface