线程安全问题的解决方案

/*
 * 进程:进程就是正在运行的应用程序。进程负责了内存空间的划分
 * 线程:一个进程中的代码是由线程去执行的,线程也是进程中的一个执行路径
 * 多线程:一个进程中有多个线程可以同时执行任务。
 * 线程安全问题的解决方案:
 *    方案一、可以使用同步代码块去解决
 *      格式:
 *          synchronized(锁对象){    //这里的锁对象必须是多线程共享的一个资源,否则锁不住。
 *              需要被同步的代码块
 *          }
 *    方案二、同步函数:   同步函数就是使用synchronized修饰一个函数
 *    同步函数注意事项:
 *       1.如果是一个非静态的同步函数的锁对象是this对象,如果是静态的同步函数的锁对象是当前函数所属的类的字节码文件(class对象)
 *       2.同步函数的锁对象是固定的,不能由你来指定。
 * 推荐使用:同步代码块
 *    原因:
 *       1.同步代码块的锁对象可以由我们随意指定,方便控制。同步函数的锁对象是固定的,不能由我们来指定
 *       2.同步代码块可以很方便控制需要被同步代码的范围,同步函数必须是整个函数的所有代码都被同步了

 * /

* 需求:一个银行账户5000块,两夫妻一个拿着存折,一个拿着卡,开始取钱比赛,每次只能取1000块,要求不准出现线程安全问题。


运行结果为:

老公取走了1000块,还剩5000元
老公取走了1000块,还剩4000元
老公取走了1000块,还剩3000元
老公取走了1000块,还剩2000元
老公取走了1000块,还剩1000元
没钱了
没钱了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值