多线程之间实现同步

为什么有线程安全问题

  当多个线程同时共享同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。

什么是多线程之间同步

  当多个线程共享同一个资源,不会受到其他线程的干扰。

需求说明:2个窗口同时卖100张火车票问题

运行结果:

线程安全解决办法。

  使用多线程之间同步synchronized或使用锁(lock)。

为什么使用线程同步或使用锁能解决线程安全问题呢?

  将可能会发生数据冲突问题(线程不安全问题)只能让当前一个线程进行执行。代码执行完成后释放锁,然后才能让其他线程进行执行。这样的话就可以解决线程不安全问题。

原来:

     1、有一个线程拿到了锁,其他线程已经有cpu执行权,一直排队等待其他线程释放资源。

     2、锁在代码执行完成后或者抛出异常情况下释放。

     3、锁已经被释放的话,其他线程开始获取锁进入同步方法。

使用多线程之间同步synchronized或使用锁(lock)

猜你喜欢

转载自www.cnblogs.com/xianshiwang/p/9955812.html