Java同步方法synchronized

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lyh1234/article/details/45338649

在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。

package test;

import java.text.SimpleDateFormat;
import java.util.Date;

public class TestSynchronized {

	public static void main(String[] args) {
		call();
	}

	public synchronized static void num() {
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()));
	}

	public static void call() {
		for (int i = 0; i < 5; i++) {
			new Thread(new Runnable() {
				@Override
				public void run() {
					num();
				}
			}).start();
		}
	}

}


输出结果(每隔3秒输出一次)

2015-04-28 16:54:01.947
2015-04-28 16:54:04.949
2015-04-28 16:54:07.949
2015-04-28 16:54:10.949
2015-04-28 16:54:13.950

如果去掉 num 方法之前的  synchronized 关键字,输出结果(同时输出)

2015-04-28 16:57:15.073
2015-04-28 16:57:15.073
2015-04-28 16:57:15.073
2015-04-28 16:57:15.073
2015-04-28 16:57:15.073


猜你喜欢

转载自blog.csdn.net/lyh1234/article/details/45338649