Java

死锁&重入锁

通俗的说,死锁就是两个或者多个线程,相互占用对方需要的资源,而都不进行释放,导致彼此之间都相互等待对方释放资源,产生了无限制等待的现象。死锁一旦发生,如果没有外力介入,这种等待将永远存在,从而对程序产生严重的影响。如果想避免死锁,除了...

Java

无锁

对于并发控制而言,锁是一种悲观的策略。它总是假设每一次的临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果有多个线程同时需要访问临界区资源,就宁可牺牲性能让线程进行等待,所以说锁会阻塞线程执行。而无锁是一种乐观的策略,它会假设...

Linux

Linux下的权限

文件权限Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。 文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可...

wuw

Be Happy

痛苦与折磨  快乐其实也很简单,不知道为什么要让自己很痛苦。 中秋节快到了,家里并没有说喜欢吃的月饼,于是就买了上次的豌豆零食,外加了一些其他的小吃,收到了,很开心。快乐就是这么简单啊! 今天看到一个小故事:古代有...

work

InnoDB

InnoDB有一道MySQL的面试题,为什么MySQL的索引要使用B+树而不是其它树形结构?比如B树? 简单回答是: 因为B树不管叶子节点还是非叶子节点,都会保存数据,这样导致在非叶子节点中能保存的指针数量变少(有些资料也称为扇出) ...

Java

NIO

NIOJava NIO中涉及的基础内容有通道(Channel)和缓冲区(Buffer)、文件IO和网络IO。 https://zhuanlan.zhihu.com/p/23488863 NIO(Non-blocking I/...