可能初学多线程和线程操作的人都会动手编写一个票务管理程序,类似于一个出票线程类,一个退票线程类什么的,完成线程通信和同步机制什么的。从出票线程就能比较容易的感受到同步机制的作用。
比如说对于出票来说,有两个线程,但是此时只留有1张票,但是对于两个线程来说,你的第一步判断票数是否大于0都会通过,但是只留有一张票,第一个线程将票卖出,第二个线程也会执行这个操作,于是余票这个变量就变成了负值。对于同一个变量或者说资源来说,不使用同步机制的话,资源会产生冲突,可以达到负值,对于余票这个必须大于0的变量来说,这肯定是不允许的。所以在理想状态下,有一种机制,它将线程区域上锁,即在一段时间内只允许一个线程访问资源,访问完成后后续线程才能跟上。
时间: 2024-10-12 04:07:32