代码练习
package com.thread.Thread_01;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
class Counter {
private static volatile
int num =
0;
private Lock lock =
new ReentrantLock();
public int getCou() {
lock.lock();
try {
num++;
return num;
}
finally {
lock.unlock();
}
}
}
class MyApp extends Thread {
public void run() {
for (
int i =
0; i <
500; i++) {
Counter counter =
new Counter();
int cou = counter.getCou();
System.out.println(currentThread().getName() +
" : " + cou);
}
}
}
package com.thread.Thread_01;
public class App {
public static void main(String[] args) {
Thread t1 =
new MyApp();
t1.setName(
"*********");
t1.start();
Thread t2 =
new MyApp();
t2.setName(
"&&&&&&&&&");
t2.start();
}
}