2共享对象
来源:互联网 发布:jenkins linux slave 编辑:程序博客网 时间:2024/06/05 21:18
1.共享对象
1.锁不仅仅是关于同步和互斥的,也是关于内存可见的。为了保证所有线程都能看到共享的,可变的变量的最新值,读取和写入线程必须使用公共的锁进行同步
2.volatile保证内存可见性,但是不保证原子性,满足以下条件时可以使用volatile关键字
2.1写入变量时不依赖变量的当前值,或者保证只有一个线程会对变量进行修改
2.2变量不需要和其他变量 共同参与不变约束
2.3访问变量时不需要加锁
3. 逸出
1.class a{
private static List<String> list = new Arraylist<String>();
publilc List<String> getvalue(){
//此处list逸出,获得list引用的线程可以进行其他任何操作
return list;
}
}
2.this引用的逸出
2.1 在构造函数中启动线程导致逸出
2.2 构造函数中使用匿名类时可能导致逸出
http://blog.csdn.net/flysqrlboy/article/details/10607295#
3.线程封闭(达到避免使用共享变量)
3.1栈封闭,使用局部变量
3.2threadLocal线程封闭
4.如何保证一个对象不可用
1.他的状态在创建后不允许呗修改
2.所有域都是final的
3.对象创建没有发生this逸出
5.如何安全发布一个对象
- 2共享对象
- 12.3.2 创建共享对象
- 共享对象
- 【2】进程间共享串口对象
- 内核对象(2)之跨越边界进程共享内核对象
- SharedObject 共享对象
- Flex 对象共享 ObjectShare
- 共享对象的实现
- LINUX使用共享对象
- 内核对象共享
- 励精图治---Concurrency---共享对象
- 共享对象库
- 对象的共享
- 3 对象的共享
- 3对象的共享
- 对象的共享
- 3对象的共享
- 3. 对象的共享
- usb的基本了解
- BZOJ 1647: [Usaco2007 Open]Fliptile 翻格子游戏 Dfs
- 课程相关资源
- 注解
- halcon/mfc利用serialport类进行串口通信
- 2共享对象
- poj训练计划
- 批量抓取
- HZAU 1208 Color Circle
- JDK1.5&1.7新特性
- 2017.4.26API中的一些类
- 迭代器的使用
- this指针的使用
- No module named model_selection