同步锁

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同步锁相关的知识,希望对你有一定的参考价值。

1.产生线程安全的问题的原因
当多条语句操作同一线程的共享数据时,一个线程对多条语句值执行了一部分,还没执行完,另一个线程参与进来执行,导致共享数据时错误的
2.解决办法
对多条操作共享数据的语句,执行完毕,才能放弃cpu的执行权,需要通过锁对象来完成
3.锁对象的原理
持有锁对象线程可以在同步中执行,没有锁的线程及时获取cpu的执行权,也进步去,因为没有锁
4.同步的前提
必须有两个或两个以上的线程
必须是多个线程使用同一个锁
5.使用锁的好处和坏处
好处:解决了线程安全问题
坏处:每个线程都需要判断锁,比较耗费资源
6.同步的分类
同步代码块 synchronized (任意对象){需要被同步的代码}
同步函数 public synchronized void method (){需要被同步的代码}锁对象是this
静态同步代码块或函数 public synchronized void method (){需要被同步的代码}锁对象是类名.class

以上是关于同步锁的主要内容,如果未能解决你的问题,请参考以下文章

线程同步锁死锁递归锁信号量GIL

Linux 线程同步都有哪些方法?

线程同步之条件锁

python--同步锁/递归锁/协程

Java锁--框架

iOS线程同步(各种锁)