正向反向代理
应用 正向代理 网络加速,游戏加速,隐藏ip,过滤内容去广告 反向代理 负载均衡,隐藏服务端
Java核心技术1-1
构建字符串 每次连接字符串都会构建一个新的String对象,既耗时,又浪费空间,所以推荐使用StringBuilder类 123StringBuilder builder = new StringBuilder();builder.append(ch);builder.append(str); switch 数组 会自动初始化为0,false,null 与C++区别 – 引用 指针 编译 对象 所有java对象都是在堆中构造的。(优化可能会被拆分) 重载 构造器初始化 继承
WSGI
WSGI server将请求封装成字典 WSGI处理后生成HTML响应,调用start_response() 返回头部信息 做python Web开发你要理解:WSGI & uwsgi https://www.bilibili.com/video/BV1hE411h7dz?p=2
协程
摘要 协成写起来方便,能异步代码同步去写,协程重要的是切换到别的线程后还可以自动切换回来。 每个语言对协程的实现有所不同 协程存在于用户态,大量的协程实际上只占用了内核态的一个线程。 当协程数量和内核线程的数量不一致时,需要有调度器来维护所有的协程,尽可能让它们公平地使用CPU。 协程是什么 「协程 Coroutines」源自 Simula 和 Modula-2 语言,这个术语早在 1958 年就被 Melvin Edward Conway 发明并用于构建汇编程序,说明协程是一种编程思想,并不局限于特定的语言。 我们所有的代码都是跑在线程中的,而线程是跑在进程中的。 协程没有直接和操作系统关联,但它不是空中楼阁,它也是跑在线程中的,可以是单线程,也可以是多线程。 单线程中的协程总的执行时间并不会比不用协程少。 Android 系统上,如果在主线程进行网络请求,会抛出 NetworkOnMainThreadException,对于在主线程上的协程也不例外,这种场景使用协程还是要切线程的。 协程好在哪里 在 Java 中要实现并发操作通常需要开启一个 Thread...
async/await 协程
https://developer.mozilla.org/zh-CN/docs/learn/JavaScript/异步/Async_await https://juejin.cn/post/6844903599932178439 Async/await 让你的代码看起来是同步的,在某种程度上,也使得它的行为更加地同步。 await 关键字会阻塞其后的代码,直到promise完成,就像执行同步操作一样。它确实可以允许其他任务在此期间继续运行,但您自己的代码被阻塞。 async/await的缺陷 了解Async/await是非常有用的,但还有一些缺点需要考虑。 Async/await 让你的代码看起来是同步的,在某种程度上,也使得它的行为更加地同步。 await...
jinja2模板用法
1. 语法 下面是一个简单的jinja2例子 12345{# This is jinja code {% for file in filenames %} ... {% endfor %}#} 2. 过滤器 变量可以通过“过滤器”进行修改,过滤器可以理解为是jinja2里面的内置函数和字符串处理函数。 常用的过滤器有: 过滤器名称 说明 safe 渲染时值不转义 capitialize 把值的首字母转换成大写,其他子母转换为小写 lower 把值转换成小写形式 upper 把值转换成大写形式 title 把值中每个单词的首字母都转换成大写 trim 把值的首尾空格去掉 striptags 渲染之前把值中所有的HTML标签都删掉 join 拼接多个值为字符串 replace 替换字符串的值 round 默认对数字进行四舍五入,也可以用参数进行控制 int 把值转换成整型 那么如何使用这些过滤器呢?...
同步异步-阻塞非阻塞等Unix5种IO模型
真正意义上的 异步IO 是说内核直接将数据拷贝至用户态的内存单元,再通知程序直接去读取数据。 select / poll / epoll 都是同步IO的多路复用模式 用户空间和内核空间 在Linux/Unix中,对于一次读取IO的操作,数据并不会直接拷贝到应用程序的缓冲区(用户空间),它首先会被拷贝到操作系统内核的缓冲区(内核空间)中,然后才会从操作系统内核的缓冲区拷贝到应用程序的缓冲区 可以看做是两个过程:1. Waiting for the data to be ready(等待数据到达内核缓冲区);2. Copying the data from the kernel to the...
uwsgi中的http http-socket socket区别
在uwsgi的注意事项中有强调说http和http-socket是两个不同的“野兽”,这是什么意思呢?简单的说,如果我们想直接将uwsgi用作服务器(例如Apache和nginx那样)直接暴露在公网那么就使用http;如果有单独的服务器(例如Apache或者nginx),由服务器将请求转发给uwsgi处理,并且使用http协议,那么此时使用http-socket。 而socket配置项又是什么意思呢?首先,按照uwsgi文档给出的解释是:bind to the specified UNIX/TCP socket using default protocol.也就是说指定UNIX/TCP socket作为默认的协议(引)。 UNIX/TCP socket其实是两类socket。UNIX socket是进程间的通信(Inter Process Communication),但只在同一台机器上;TCP/IP sockets允许进程通过网络通信。(引) ,和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,而且你看到的commit id和我的肯定不一样,以你自己的为准。为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。 git log...
zip伪加密
实例 识别真假加密 无加密 压缩源文件数据区的全局加密应当为00 00 且压缩源文件目录区的全局方式位标记应当为00 00 假加密 压缩源文件数据区的全局加密应当为00 00 且压缩源文件目录区的全局方式位标记应当为09 00 真加密 压缩源文件数据区的全局加密应当为09 00 且压缩源文件目录区的全局方式位标记应当为09 00 参考文章1 参考文章2