05 2019 档案
摘要:1 问题 Whenever you expose a web service / api endpoint, you need to implement a rate limiter to prevent abuse of the service (DOS attacks). Implement a
阅读全文
摘要:1 solution 1 1.1 数据结构 一个Hashmap和一个双向链表。如果想要快速获取first,并且只遍历一次,那么就要想到双向链表和HashMap的组合。 链表可以保证第一个在head处,HashMap可以保证查找O(1)。 HashMap的key是word本身,value是双向链表中的
阅读全文
摘要:1 问题 给定一个单链表,随机返回一个节点的值,保证每个节点被选择的概率相同。 链表的长度未知,可能会非常大。 2 测试方法 一个节点数为7的单链表,返回1000000次值,统计每个节点被选择的频率。看每个节点被选择的频率是不是接近1/7。 3 java随机数生成类java.util.Random
阅读全文
摘要:1 理解左旋和右旋 旋转是相对于所选定的两个节点及其兄弟节点构成的三角形而言的,左旋转就是这两个节点构成的边向左旋转到了另外一条边,而右旋转就是这两个节点够的边向右旋转到了另外一条边上。旋转成功了之后,当了父亲的儿子多出来的一条边就给了原来的父亲。 旋转的步骤: 第一步,选定要进行旋转的两个节点,父
阅读全文
摘要:1
阅读全文
摘要:1 什么是可重入锁 可重入锁是说一个线程在已经获取了该锁的情况下,还可以再次获取该锁。 主要的应用场景: 可重入锁指的是在一个线程中可以多次获取同一把锁,比如:一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法, 则该线程可以直接执行调用的方法,而无需重新获得锁; Reentran
阅读全文
摘要:1 受内存限制 每个tcp连接是一个打开的socket文件,因此linux服务器的最大连接数受linux操作系统单个进程同时打开的最大文件数的限制。 这个限制本质上是对单个进程内存的限制。 查看进程最大文件数: ulimit -n 设置进行最大文件数: ulimit -n 100000
阅读全文
摘要:1 java.util.concurrent.locks.LockSupport park:阻塞线程。 unpark:解除阻塞线程。 线程阻塞最基础的组件。 2 sun.misc.Unsafe 可以用来在任意内存位置读写数据。
阅读全文
摘要:1 submit的Runnable为什么通过Future获取任务的执行结果 submit的Runnable被封装成了FutureTask对象,并且返回。 Runnable执行的结果是在哪里交给FutureTask的? FutureTask重写了Runnable的run()方法,在这个run()方法中
阅读全文
摘要:1 为什么需要Callable和Future Runnable没有返回值,也不抛异常,这样主线程不能知道子线程的执行结果。 为了解决这个问题就有了Callable和Future。Callable提供的call方法返回一个结果,然后把这个结果交给Future,主线程通过Future就能够获取子线程执行
阅读全文
摘要:1 使用git rebase的一般开发过程 假设Git目前只有一个分支master。开发人员的工作流程是 git clone master branch在自己本地checkout -b local创建一个本地开发分支在本地的开发分支上开发和测试阶段性开发完成后(包含功能代码和单元测试),可以准备提交
阅读全文
摘要:1 同c一样用四个空格进行缩进 2 每行一条语句,不用分号 3 不用大括号标识代码块,但是要用do/done来标识代码块 4 用双小括号,类似于c的for进行编码 for ((i=1; i<=10; i++)) do echo ${i} done 5 用seq命令 `seq start step e
阅读全文
摘要:1 标识一个socket的是四元组,不只是端口号 client ip : client port : server ip : server port 2 accept出的新的socket仍然使用和listening socket一样的端口号 3 正是因为是四元组,所以服务器才可以支持百万连接 限制一
阅读全文
摘要:1 直接空格加& python flask_server.py & 最简单的方式 这样还不行,不知道为什么flask server会自动退出。 $ nohup python flask_server.py & > log.txt 2>&1 这样就行了。这是为什么,必须要这个重定向的log.txt。奇
阅读全文
摘要:$PATH,从左到右依次查找。 遇到第一个匹配的命令就立即停止查找。
阅读全文
摘要:用virtualenv venv搭建python虚拟环境。然后执行。#!/usr/bin/env pythonfrom flask import Flask, render_template, requestapp = Flask(__name__)@app.route('/getOp/')def
阅读全文
摘要:1 python系统库的位置 大部分系统库在/usr/lib64/python2.7目录下,但是像sys模块,是python内置的库,是用c实现的,直接连接进了python.exe中了。 也就是说,在import的时候,python会去/usr/lib64/python2.7中找相应的系统库。 2
阅读全文