为什么需要锁:考虑线程安全的问题
当多个线程在同时共享到同一个全局变量做写的操作的时候,可能会受到其他线程的干扰。
这个时候就需要考虑上锁了,让多个线程同时抢购同一把锁,只要谁能够抢锁成功,谁就可以执行我们的代码,如果没有抢到锁的情况下,当前线程变为阻塞状态,一般的情况下只有做写的时候才会上锁,写包括:update del insert 查询就不需要了。
我们就来说说悲观锁与乐观锁:
悲观锁:就是比较悲观,每次在执行那我们同步代码块的时候都会去获取锁,如果没有获取到锁的情况下,当前线程会被变为阻塞状态,效率比较低。
悲观锁应用场景:synchronized,mysql中的行锁机制,lock锁。