@旺柴先生
多个线程(或进程)要执行同一个特定的不可重入的程序代码块(称为临界区),这就需要适当的并发控制同步技术。否则,可能会发生竞态条件。
--维基百科
说白了就是但多个线程间同时要对某一区域块(临界区/临界资源)操作,需要运用一些技术手段来对临界资源进行保护,避免共同使用期间产生混乱。
举个简单的例子,我们支付宝给 🐶@旺柴先生 转账💰1RBM,这个时候同时也有另外一个人给他转账💰1RBM,这时他自己的钱包已经有1块钱来,但由于这两笔账是同时进账的,所以非线程同步系统会作出如下操作:
非线程同步最终取钱包余额为2元,显然是不对的,我们来看看加上线程同步后:
最终取钱包余额为3元,这里的解决方案采用了加锁🔒来解决,那么具体的都有哪几种方式呢?
我们这里也可以用一个更通俗的例子来说明:
有些例子可能不那么准确,比如自旋锁,但通过这个例子结合实际理论可我们可以快速理解记忆各个锁🔒的特点。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。