一、什么是线程安全问题?
●多个线程同时操作同一个共享资源的时候可能会出现业务安全问题,称为线程安全问题
二、线程安全问题出现的原因?
●存在多线程并发
●同时访问共享资源
●存在修改共享资源
三、线程安全问题案例
(1)需求
小明和小红是一对夫妻,他们有一个共同的账户,余额是10万元,模拟2人同时去取钱10万。
(2)分析
①:需要提供一个账户类,创建一个账户对象代表2个人的共享账户。
②:需要定义一个线程类,线程类可以处理账户对象。
③:创建2个线程对象,传入同一个账户对象。
④:启动2个线程,去同一个账户对象中取钱10万。
(3)出现了线程安全问题
运行第一次:
运行第二次:
运行出现了线程安全问题
取钱后银行亏损了100000
(3)总结
线程安全问题发生的原因是什么?
●多个线程同时访问同一个共享资源且存在修改该资源。