多线程的同步锁实现方法

2024-10-30 02:08:06

1、public synchronized void test() { System.out.println("test开始.."); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("test结束.."); }}

多线程的同步锁实现方法

2、class MyThread extends Thread { public void run() { Sync sync = new Sync(); sync.test(); }}public class Main { public static void main(String[] args) { for (int i = 0; i < 3; i++) { Thread thread = new MyThread(); thread.start(); } }}

多线程的同步锁实现方法

3、可以看出来,上面的程序起了三个线程,同时运行Sync类中的test()方法,虽然test()方法加上了synchronized,但是还是同时运行起来,貌似synchronized没起作用。将test()方法上的synchronized去掉,在方法内部加上synchronized(this):public void test()

多线程的同步锁实现方法
猜你喜欢