A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SHISY 中级黑马   /  2015-6-14 22:20  /  537 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.在多个线程同时运行时发生的异常情况统称为线程安全问题。
2.线程安全问题在理想状态下,不容易出现,但一旦出现对软件的影响是非常大的。
---产生原因&前提:
线程随机访问性
有多个线程并行
多个线程有共享数据
多个线程操作了共享数据
---处理方式:
使用java提供的同步机制,使某一线程的完整动作执行完毕,其他线程再进行操作
3.Java同步机制:为解决同步问题而提供的工具
原子性操作:在执行操作时,我们把一个完整动作可以称为一个原子性操作,是一个不可切割的动作。即不可被线程打断的操作。
synchronized 关键字:
--同步代码块格式:
synchronized(锁对象){
//该对象可以是任意对象
需要同步的代码;
                 }
--锁:几个线程需要使用相同的锁对象进行同步操作,使用不同的锁是无法完成同步操作的。
--Synchronized内需要同步的代码即为一个原子性操作。
--同步方法:方法上声明,将所在对象作为默认锁,即this。
--同步静态方法:将方法所在类作为默认所,即XX.class。
同步的特点好处和弊端:
--特点:当一个代码块被同步后,当一个线程访问时,其它线程列队等待。它能保证同一时刻只为一个线程服务,一个线程执行完毕,才能轮到下一个线程执行;
--好处:可以解决多线程访问的并发性问题;
--弊端:因为要使其它线程列队等待,所以会有其它额外的操作,而且这些操作都非常耗时,所以效率比较低;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马