系统

Centos7除了iptables,还自带了更为先进的防火墙firewalld.

最近在折腾64位系统升级时,遇到的一个问题是客户端怎么都connect不上64位主机(64位主机可以connect外部服务器,看起来网络大致是正常的)。

telnet也只能22号端口。netstat显示该端口始终处于监听状态,iptables, selinux也都已经关闭重启。

开始还怀疑公司的路由器作了些设置,结果查资料发现,原来Centos7弄了新的防火墙。

死锁问题

最经典的死锁场景就是哲学家进餐。

银行汇款也是一个典型的场景。A汇款给B,同时B也在汇款给A, 这时有可能会发生死锁。

因为A给B汇款在执行lock A;lock B;B给A汇款在执行lock B;lock A;

那么通常的解决方案有哪些呢?

最简单的方法是在lock from;lock to之前再请求一个公共的lock,但是每个线程/进程都这么做效率比较低。

另一种办法是都执行lock A; lock B这样的顺序,这可以通过比较对象的某种属性来进行;

数据库管理系统则通常提供了死锁的检测机制,在检测到发生死锁之后,对其中一部分采取回滚,恢复。