如何解决物联网挑战
吒吒辉: 数据库的锁根据不同划分方式有很多种说法,在业务访问上有以下两种:
在访问共享资源之前对其进行加锁,在访问完成后进行解锁操作。 加锁成功后,任何其它线程请求来获取锁都会被阻塞,直到当前线自行释放锁。 线程3状态:就绪、阻塞、执行 如解锁时,有一个以上的线程阻塞(资源已释放),那么所有尝试获取该锁的线程都被CPU认为就绪状态, 如果第一个就绪状态的线程又执行加锁操作,那么其他的线程又会进入就绪状态。 在这种方式下,只能有一个线程访问被互斥锁保护的资源 故此,MySQL的SQL语句加了互斥锁后,只有接受到请求并获取锁的线程才能够访问和修改数据。 因为互斥锁是针对线程访问控制而不是请求本身。
什么是锁 面试官:: 你是来参加面试的吧? 吒吒辉: 不 不 不,我是来参加复试呢。 面试官:: 看到上次别人点评,MySQL优化还阔以。那你先谈谈对锁的理解? 吒吒辉: 嘿嘿,还好! 锁是计算机在进行多 进程、线程执行调度时强行限制资源访问的同步机制,用于在并发访问时保证数据的一致性、有效性; 锁是在执行多线程时,用于强行限制资源访问的同步机制,即用在并发控制中保证对互斥的要求。 一般的锁是建议锁(advisory lock),每个线程在访问对应资源前都需获取锁的信息,再根据信息决定是否可以访问。若访问对应信息,锁的状态会改变为锁定,因此其它线程此时不会来访问该资源,当资源结束后,会恢复锁的状态,允许其他线程的访问。 有些系统有强制锁(mandatory lock),若有未授权的线程想要访问锁定的数据,在访问时就会产生异常。 ---《维基百科》 锁的类型和应用原理 面试官:: 那一般数据库有哪些锁? 一般怎么使用? 此刻,用我那呆若木鸡的眼神看向面试官,内心实属尴尬+害怕,数据库不就是共享和互斥锁吗?
这样看来,是我太嫩。此处必有坑。殊不知此刻我内心已把你拿捏,定斩不饶。 刻面试门外首先映入眼帘的是一个白色似皮球的东西,似圆非圆。好奇冬瓜落地一般。上半段还有一段湿湿的部分,显得尤为入目。这是什么情况? 紧接着现身一名中年男子。他身着纯白色T桖衫的,一灰色宽松的休闲西裤,腰围至少得三十好几。外加一双夏日必备皮制凉鞋。只见,他正低头看着手上的一张A4纸。透过一头黑色短发。满脸的赘肉横生。外加上那大腹便便快要把那T桖衫给撑爆的肚子。
看得我好生害怕,不由得咽了咽口水,生怕自己说错话。这宛如一颗肉粽呀。不在职场摸滚打拼8、9年,也不会有当前这景象。 (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |