10 2020 档案

摘要:互斥锁 假如在一个多核CPU中,coreA运行的A线程通过调用pthread_mutex_lock去获得一个临界区的互斥锁,然后coreB中运行的B线程也调用pthread_mutex_lock去获取互斥锁,B线程就会被阻塞,coreB就会执行上下文切换,把B线程调度到等待队列中,然后coreB就可 阅读全文
posted @ 2020-10-11 20:16 gitfong 阅读(283) 评论(0) 推荐(0)
摘要:TCP报文段结构 序号seq和确认号ack 序号seq是该报文段首字节的字节流编号,其作用是保证数据的顺序; 确认号ack是期望收到下一字节的序号,其作用是保证数据不会丢失; TCP报文段首部字段中有六个标志位 SYN 用于连接建立 ACK 用于指示确认字段中的值是有效的,即该报文段包含一个对已被成 阅读全文
posted @ 2020-10-11 14:52 gitfong 阅读(128) 评论(0) 推荐(0)
摘要:缓存击穿 某个key过期了,但是对该key的大量请求被转发到查询数据库去了。 解决方法:设置key不过期;或者加访问互斥锁; 缓存穿透 某个key不存在缓存中,所有请求被转发到数据库去查询,然而数据库也没有该key对应的数据。 解决办法:不存在的key也保存到缓存中,并设个过期时间。应用层校验key 阅读全文
posted @ 2020-10-10 00:43 gitfong 阅读(118) 评论(0) 推荐(0)
摘要:阻塞IO 用户线程阻塞在recvfrom调用上,等待内核把数据准备好并把数据拷贝到用户空间,再返回; 非阻塞IO 需要用户线程不断去询问内核数据是否准备好了; IO复用 依然是阻塞的,阻塞在select操作上。 线程通过将一个或多个fd传递给select,阻塞在select操作上,select帮我们 阅读全文
posted @ 2020-10-09 23:56 gitfong 阅读(111) 评论(0) 推荐(0)