java多线程学习-2
问1:java多线程场景下,为什么会出现线程安全问题?
》因为当多个线程操作同一个共享数据,且如果存在场景:多个线程同时操作共享数据。比如卖票会出现重票,错票(票号为负数)
问2:使用synchronized 代码块同步的这样方式,来实现线程安全,核心时有一个同步监视器(俗称锁)。锁可以为任何一个对象。如果要实现线程安全,必须要让是锁只有一把。请问synchronized(Obj)是如何实现线程安全的呢?
》
》使用synchronized关键字利用同步代码块和同步方法两种方式,本质上来说,都是给操作共享数据的行为上挂起一把锁,锁是唯一的,所以同时只能由一个线程实例来操作共享数据