Node Example Record
# random story
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263// rss_feeds.txt// http://lambda-the-ultimate.org/rss.xml// http://lambda-the-ultimate.org/rss.xmlvar fs = require('fs')var request =...
more...
Python Async
# 异步 IO
当代码需要执行一个耗时的 IO 操作时,它只发出 IO 指令,并不等待 IO 结果,然后就去执行其他代码了。一段时间后,当 IO 返回结果时,再通知 CPU 进行处理。
异步 IO 模型需要一个消息循环,在消息循环中,主线程不断地重复 "读取消息 - 处理消息" 这一过程:
12345loop = get_event_loop()while True: event = loop.get_event() process_event(event)
消息模型其实早在应用在桌面应用程序中了。一个 GUI...
more...
Python Thread
# GIL
GIL global interpreter lock (cpython),python 中一个线程对应 C 语言的一个线程
GIL 使得同一时刻只有一个线程在一个 CPU 上执行,无法将多个线程映射到多个 CPU 上执行
GIL 会根据执行的字节码行数以及时间片释放 GIL ,在遇到 IO 操作时也会主动释放
运行
12345678910import threading, multiprocessingdef loop(): x = 0 while True: x = x ^ 1for i in range(multiprocessing.cpu_count()): t =...
more...
Python Wsgi
# 浏览器请求动态 web 页面过程
# WSGI
WSGI:Web Server Gateway Interface。
WSGI 接口定义非常简单,它只要求 Web 开发者实现一个函数,就可以响应 HTTP 请求。
123def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return [b'Hello,...
more...