class Count{
private long count =0;
public long getCount(){
return count;
}
//thread safe fix 1000
public synchronized void service(){
++count;
System.out.println(Thread.currentThread().getName());
}
//thread not safe[998 or 997 my test result]
public void service1(){
++count;
System.out.println(Thread.currentThread().getName());
}
}
public class Thread2_2 {
public static void main(String[] args) throws InterruptedException {
final Count count = new Count();
for(int i=0;i<1000;i++){
new Thread(new Runnable(){
@Override
public void run() {
count.service();
}
}).start();
}
//wait all the threads finished(10 seconds is ok)
Thread.sleep(10000L);
System.out.println(count.getCount());
}
}
private long count =0;
public long getCount(){
return count;
}
//thread safe fix 1000
public synchronized void service(){
++count;
System.out.println(Thread.currentThread().getName());
}
//thread not safe[998 or 997 my test result]
public void service1(){
++count;
System.out.println(Thread.currentThread().getName());
}
}
public class Thread2_2 {
public static void main(String[] args) throws InterruptedException {
final Count count = new Count();
for(int i=0;i<1000;i++){
new Thread(new Runnable(){
@Override
public void run() {
count.service();
}
}).start();
}
//wait all the threads finished(10 seconds is ok)
Thread.sleep(10000L);
System.out.println(count.getCount());
}
}