多线程访问共享数据,产生安全问题;
如卖票案列:
线程安全的代码表现:
其中,Thread类的静态方法sleep需要处理异常,throw抛出异常或者try/catch处理异常;
while( true )即为死循环;
主程序执行:
其中,父类Thread构造方法入参为同一个Runnable的实现类RunnableImpl;因为要访问同一个数据源即访问共享数据,才会出现多线程的安全问题;
但是创建的多个线程对象是不一样的;
运行结果:
其中,存在不同的线程卖同一张票的情况,还有卖不存在的票的情况,假票,那能好使吗