📄 +
字号:
any problems, send mails to lysindybear@sina.com.cn
在linux系统中,锁大量存在,同时由于并发访问的问题,带来了一些代码上的困惑以及程序上容易出现的
错误。
在linux系统中,用于保护共享资源的锁有以下几种:
spin_lock, write_lock。
他们都可以对共享的资源,临界区进行访问控制,一般对临界区的访问,不论读还是写都要加锁。
这里要强调一点的是:临界资源的申请,这里有一个很容易犯错误的地方。
1.假设存在一个共享资源池pool。同时又一个她的一个缓冲区cache。
2.我们的进程要进行读操作,首先从cache中寻找,一般使用hash表的方式。如果没有找到,
3.我们要向共享资源池申请一个资源A,但是没有得到,我们必须对这个pool进行加锁操作,然后取出一个资源,解锁。
4.但是到了这里,我们要加倍的小心,我们解锁出来以后,一般要再检查一边cache,看是否我们请求的
资源已经在cache中了,这是因为,在我们申请资源的时候,可能别的进程已经请求了,特别时在牵涉到
有资源计数的系统,如果不进行这种操作,可能会产生计数不匹配
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -