java同步二
synchronized(obj)
块有四种
- 局部块
- 构造块 初始化对象信息
- 静态块 初始化类,先于对象
- 同步块 加入synchronized Obj为同步监视器。
synchronized(obj){
代码,
}
···
package lib;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
/*
- 操作同一个
- 被多个线程操作
- 同时操作
*/
public class Syno {
public static void main(String[] args) {
List<String> a= new ArrayList<String>();
for(int i = 0; i<10000;i++) {
new Thread(()->{
synchronized (a) {
a.add(Thread.currentThread().getName());
}//锁的对象就是要修改的对象
}).start();
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(a.size());
}
}
···
网友评论