Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
76 lines (63 loc) · 1.7 KB

File metadata and controls

76 lines (63 loc) · 1.7 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package thread;
import myutil.Log;
/**
* Created by yahier on 17/3/28.
*/
public class SynchonizedTest {
static String t = "";
static String yaya = "yaya";
public final static void main(String[] args) {
SynchonizedTest test = new SynchonizedTest();
//t = new SynchonizedTest();
test.test2();
}
//即使是不同线程,two()方法 仍然不能和one()方法同时执行
void test2() {
new Thread(new Runnable() {
@Override
public void run() {
two();
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
three();
}
}).start();
}
void one() {
synchronized (t) {
Log.e("SynchonizedTest", "one开始");
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.e("SynchonizedTest", "one结束");
}
void two() {
synchronized (t) {
Log.e("SynchonizedTest", "two");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.e("SynchonizedTest", "two结束");
}
}
//如果也有t代替yaya来锁定,three就可以和two同时执行了
void three() {
synchronized (yaya) {
Log.e("SynchonizedTest", "three");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.e("SynchonizedTest", "three结束");
}
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.