小巧小海豚

文章
3
资源
0
加入时间
3年0月21天

Synchronized和Reetrantlock的区别

相同点1、都是用来协调多线程中的共享对象、变量的访问2、都是可重入锁,即同一线程可多次获得同一锁3、都保证了可见性和互斥性不同点1、底层实现:synchronized是Java的关键字,由JVM提供。而ReetrantLock是JDK1.5之后提供的API层面的2、是否可手动释放:synchronized自动释放,ReetrantLock通过lock和unlock配合try和finally实现3、是否可中断:synchronized只有再发生异常时可中断;而ReetrantLock可通过try

深度剖析linux socket的epollin/epollout是何时触发的

本篇文章的问题是,在 EPOLLET 模式下,socket的 EPOLLIN 和 EPOLLOUT 是何时触发的?由于epollin比较简单,我们先来看这个。根据epoll相关的man文档我们可以知道,epollin表示有数据可读,所以它发生的时间必然是有新的tcp数据到来。我们来写段代码验证下:#include <arpa/inet.h>#include <assert.h>#include <errno.h>