方法声明时使用放在访问操作符(public等)之后,返回类型声明(void等)之前 一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候 当前线程执行完该方法后,别的线程才能进入public synchronized void synMethod() 代码块中使用synchronized后跟括号,
括号里是变量 public int synMethod(int a1) { synchronized(a1) { //一次只能有一个线程进入 } }synchronized后面括号是一对象线程获得的是对象锁如果为了对对象使用部分锁通常是虚拟对象来上锁(创建一个简单对象)public void run() { synchronized ( Ojbect instance ) {synchronized后面括号里是类名线程获得的是类对象锁线程对该类的静态方法和静态变量的等都不能操作 Public class TestThread { public void testSynch() { …….. synchronized( TestThread.class ) { ………. } } }
括号里是变量 public int synMethod(int a1) { synchronized(a1) { //一次只能有一个线程进入 } }synchronized后面括号是一对象线程获得的是对象锁如果为了对对象使用部分锁通常是虚拟对象来上锁(创建一个简单对象)public void run() { synchronized ( Ojbect instance ) {synchronized后面括号里是类名线程获得的是类对象锁线程对该类的静态方法和静态变量的等都不能操作 Public class TestThread { public void testSynch() { …….. synchronized( TestThread.class ) { ………. } } }
同步方法详解
本文详细介绍了Java中synchronized关键字的使用方法。包括如何在方法声明时使用synchronized确保线程安全,以及如何在代码块中使用它来实现对象锁或类对象锁。此外,还讨论了如何通过使用虚拟对象来实现部分锁定。
6608

被折叠的 条评论
为什么被折叠?



