1.加在静态函数上或者加在class对象上,这两者锁住的都是class对象
public synchronized static void test1() {
for (int i = 0; i < 10; i++) {
System.out.println(\"test1...\");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void test4() {
synchronized (Test.class) {
for (int i = 0; i < 10; i++) {
System.out.println(\"test4...\");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void main(String args[]) {
test1();
Test t = new Test();
t.test4();
}
执行结果
test1...
test1...
test1...
test1...
test1...
test1...
test1...
test1...
test1...
test1...
test4...
test4...
test4...
test4...
test4...
test4...
test4...
test4...
test4...
test4...
2.锁住函数,锁住this,锁住某个对象实例,这三种锁住的都是对象实例
在下面这张情况下,这三者是等价的
public synchronized void test2() {
for (int i = 0; i < 10; i++) {
System.out.println(\"test2...\");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void test3() {
synchronized (this) {
for (int i = 0; i < 10; i++) {
System.out.println(\"test3...\");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public void test5( o) {
synchronized (o) {
for (int i = 0; i < 10; i++) {
System.out.println(\"test5...\");
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void main(String args[]) {
Test t1 = new Test();
Test t2 = new Test();
t1.test2();
t1.test3();
t2.test5(t1);
}
执行结果如下
test2...
test2...
test2...
test2...
test2...
test2...
test2...
test2...
test2...
test2...
test3...
test3...
test3...
test3...
test3...
test3...
test3...
test3...
test3...
test3...
test5...
test5...
test5...
test5...
test5...
test5...
test5...
test5...
test5...
test5...
继续阅读与本文标签相同的文章
-
PDF转成TXT文本格式,应该如何转换比较快?
2026-05-18栏目: 教程
-
投资10亿!薛城区将开创全新现代化商贸物流模式
2026-05-18栏目: 教程
-
平板笔记本全网相关搜索量排名 平板笔记本全网相关搜索量排行榜
2026-05-18栏目: 教程
-
拼多多开店的5大盲区!赶紧避开
2026-05-18栏目: 教程
-
如何打造一个销售流程把业务做好?
2026-05-18栏目: 教程
