重庆做网站changekewordpress修改主题模板
2026/4/5 17:24:34 网站建设 项目流程
重庆做网站changeke,wordpress修改主题模板,深圳建设网站排名,建设网站用什么什么是悲观锁 悲观锁#xff1a;假设并发冲突的概率很高#xff0c;因此在读取数据时会加锁#xff0c;以防止其他线程修改数据。只有当自己获得了锁之后才能对数据进行操作#xff0c;操作完成后释放锁。 什么是乐观锁 乐观锁#xff1a;假设并发冲突的概率很低#…什么是悲观锁悲观锁假设并发冲突的概率很高因此在读取数据时会加锁以防止其他线程修改数据。只有当自己获得了锁之后才能对数据进行操作操作完成后释放锁。什么是乐观锁乐观锁假设并发冲突的概率很低因此在读取数据时不加锁而是在更新数据时检查数据是否被其他线程修改过。如果数据没有被修改则更新成功如果数据已经被修改则放弃当前操作或者重试。什么是原子操作原子操作是指一个不可分割的操作要么完全执行要么根本不执行。这意味着在原子操作执行期间其他线程无法访问或修改受影响的内存位置。什么是CASCAS (Compare-And-Swap)CAS 是一种原子操作用于更新内存中的值它执行以下操作比较将当前内存值与预期的值进行比较。交换如果当前值与预期值相等则将新值写入内存。否则不进行任何操作并返回当前值。CAS 的优点CAS 是一种实现无锁并发数据结构的有效方法因为它避免了锁CAS 不需要使用锁从而提高了性能和可伸缩性。确保了数据一致性CAS 保证了并发更新的正确性和原子性。简单易用CAS 的 API 通常很简单易于理解和使用。悲观锁的python实践实例import threading# 创建一个锁对象lock threading.Lock()# 共享数据count 0def pessimistic_lock():global count# 获取锁with lock:# 执行操作temp counttemp 1count tempprint(fPessimistic Lock: Count is {count})# 创建多个线程threads []for _ in range(10):t threading.Thread(targetpessimistic_lock)threads.append(t)t.start()# 等待所有线程执行完毕for t in threads:t.join()print(fFinal count: {count})在这个例子中,我们使用threading.Lock()创建一个锁对象,然后在需要访问共享数据count的时候,使用with lock:获取锁,执行操作后释放锁。这样可以确保每次只有一个线程能够访问共享数据,避免了并发访问导致的问题。乐观锁的例子未使用原子操作的casimport threading# 共享数据count 0def optimistic_lock():global count# 读取共享数据local_count count# 执行操作local_count 1# 检查数据是否被修改if count local_count - 1:count local_countprint(fOptimistic Lock: Count is {count})else:print(Data has been modified by other threads, retry or abort.)# 创建多个线程threads []for _ in range(10):t threading.Thread(targetoptimistic_lock)threads.append(t)t.start()# 等待所有线程执行完毕for t in threads:t.join()print(fFinal count: {count})在这个例子中,我们没有使用锁,而是在更新共享数据count的时候,先读取当前值到local_count中,执行操作后,再检查count是否被其他线程修改过。如果没有被修改,则更新count的值;如果被修改,则输出提示信息。这种方式可以减少锁的开销,但是需要处理并发冲突的情况。注意此代码并没有实现原子操作只是实现了乐观锁感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询