为什么使用epoll 这个是老生常谈了,四个字,多路复用,要不单线程只能停等排队。另外select和poll不如epoll强大好用。 程序结构漫谈 代码很简陋,基本属于玩具。但是还是随便谈谈。 在单线程模型下使用epoll,只能使用一个epoll的instance同时监听socket描述符和conn ...
分类:
编程语言 时间:
2020-02-25 21:48:22
阅读次数:
91
本文基于linux版本:4.14.111 简单的总结下 softirq、work_queue、tasklet 三种中断下半部的工作原理及区别,并附上三种形式的简单实例。 一、运行原理① softirq: void __do_softirq(void) { int max_restart = MAX_ ...
分类:
其他好文 时间:
2020-02-24 22:26:48
阅读次数:
104
题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 题解一:BFS 1 public static ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) { 2 ArrayList<ArrayList<Integer>> re ...
分类:
其他好文 时间:
2020-02-24 14:44:29
阅读次数:
62
前言 微信红包业务,发红包之后如果24小时之内没有被领取完就自动过期失效。 架构设计 业务流程 老板发红包,此时缓存初始化红包个数,红包金额(单位分),并异步入库。 红包数据入延迟队列,唯一标识+失效时间 红包数据出延迟队列,根据唯一标识清空红包缓存数据、异步更新数据库、异步退回红包金额 代码案例 ...
分类:
微信 时间:
2020-02-11 19:22:09
阅读次数:
102
前面的队列以及锁都是基于阻塞是的操作。要实现同步,还可以通过信号也就是异步的方式来进行。例如在往文件的写入字符后,发送一个信号。捕捉到信号后执行动作。这样就不会造成阻塞,之前的阻塞性IO和POLL,是调用函数进去检查,条件不满足是造成阻塞。 应用层启动异步通知机制就三个步骤: 1 调用signal函 ...
分类:
系统相关 时间:
2020-02-09 11:51:12
阅读次数:
100
转:https://blog.csdn.net/weixin_36296538/article/details/83153070 前言我最近在琢磨django框架的使用,在上传个人网站服务器上时,再次遇到了找不到静态文件,css、img等样式全无的问题。于是沉下心来,好好研究了django的静态文件 ...
分类:
Web程序 时间:
2020-02-07 19:09:03
阅读次数:
89
面试题41:数据流中的中位数 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 所谓数据流,就是不会一次性读入所有数据,只能一个一个读取,每一步都要求能 ...
分类:
其他好文 时间:
2020-01-31 20:31:52
阅读次数:
72
We have a collection of rocks, each rock has a positive integer weight. Each turn, we choose the two heaviest rocks and smash them together. Suppose t ...
分类:
其他好文 时间:
2020-01-31 14:13:17
阅读次数:
78
一、回顾 在 "linux poll机制使用(一)" 写了个实现poll机制的简单例子。在驱动模块中需要实现 的`.poll xxx_poll函数 POLLIN | POLLRDNORM`,否则返回0(可以看看上一章的例子);接下来分析一下 linux 内核中 poll 机制的实现。 二、poll机 ...
分类:
系统相关 时间:
2020-01-31 00:35:24
阅读次数:
90
华清直播:http://www.makeru.com.cn/live/5413_1937.html 深度理解select、poll和epoll Linux IO模式及 select、poll、epoll详解 ...
分类:
其他好文 时间:
2020-01-28 14:16:32
阅读次数:
66