java新手-同步静态方法锁定在类上
文档说明同步静态方法锁定类,但我不知道这意味着什么。你能解释一下吗java新手-同步静态方法锁定在类上,java,android,Java,Android,文档说明同步静态方法锁定类,但我不知道这意味着什么。你能解释一下吗 public static synchronized Object getObjectById (Class objclass, Long id) { 这意味着,无论何时访问此方法,它都将被锁定,在锁被销毁之前,没有其他线程能够访问它。换句话说,方法内容永远不会由多个线程同时执行 注意,同步本质上会减慢应用程序的运行速度,因为线程可能需要等待一段时间才能继续执行。这基本上意味着,如果类Foo中有静态同步方法,它们就不能同时运行
public static synchronized Object getObjectById (Class objclass, Long id) {
这意味着,无论何时访问此方法,它都将被锁定,在锁被销毁之前,没有其他线程能够访问它。换句话说,方法内容永远不会由多个线程同时执行
注意,同步本质上会减慢应用程序的运行速度,因为线程可能需要等待一段时间才能继续执行。这基本上意味着,如果类Foo中有静态同步方法,它们就不能同时运行。如果两个线程同时尝试访问它们,则一个线程将获得锁。其他线程将不得不等待 非静态同步方法使用某些对象作为锁。静态同步方法使用类 Foo a=新的Foo(); Foo b=新的Foo() a、 syncMethod()和b.syncMethod()可以同时运行,因为它们锁定不同的对象
Foo.staticSyncMethod()和Foo.anotherStaticSyncMethod()不能同时运行。假设您有两个静态方法,并且都定义为已同步。两个不能同时执行,因为它们共享同一个锁(即类本身) 这两者不能同时运行 但它们可以与非静态同步方法并发执行。原因是非静态同步方法锁定正在运行的实际实例
祝你好运。general所有关于技术的问题,都需要解释。很容易在互联网上的其他任何地方找到,但是静态同步意味着什么。。。我理解synchronzedStatic的意思是“在类级别”,也就是说,您不需要实例来访问它。例如:
MyClass.myStaticMethod()
或MyClass.MyClass\u属性
public static synchronized void Foo()
public static synchronized void Bar()