3.2.2_多线程【下】.pptx

3.2.2_多线程【下】概要

Java 基础篇 线程的同步 当多个线程访问同一个数据时,非常容易出现线程安全问题。这时候就需要用线程同步 如:银行取钱问题,有以下步骤: 1) 用户输入账户、密码,系统判断是否登录成功 2) 用户输入取款金额 3) 系统判断取款金额是否大于现有金额 4) 如果金额大于取款金额,就成功,否则提示小于余额 5) 将这个流程放在多线程并发场景下,就可能出现问题。 同步 同步代码块 线程开始执行同步代码块之前,必须先获得对同步监视器(object)的锁定,当同步代码块执行结束后,该线程自然释放了对该同步监视器的锁定。 同步方法 Java多线程支持方法同步,方法同步只需用用synchronized来修饰方法即可,那么这个方法就是同步方法了。对于同步方法而言,无需显示指定同步监视器,同步方法监视器就是本身this。 synchronized (object) { //同步代码 } 需要用同步方法可以非常方便地将某类变成线程安全的类,该类具有以下特征: 1) 该类的对象可以被多个线程访问 2) 每个线程调用对象的任意方法之后都将得到正常结果 3) 每个线程调用对象的任意方法后,该对象状态保持合理状态 可变类的线程安全是以降低程序的运行效率为代价,为了减少线程安全所带来的负面影响,可以采用以下策略: 1) 不要对线程安全类的所有方法都采用同步模式,只对那些会改变竞争资源(共享资源)的方法进行

文档评论(0)

1亿VIP精品文档

相关文档