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

文档评论(0)