首页   注册   登录
 NoAnyLove 最近的时间轴更新

NoAnyLove

V2EX 第 207963 号会员,加入于 2016-12-28 06:36:26 +08:00
今日活跃度排名 22204
NoAnyLove 最近回复了
30 天前
回复了 lc7029 创建的主题 程序员 双十一到了,啥都不想买,有没有一样的
佛系程序猿路过。。。
这种问题难道不是看代码一分钟就能解决的? github.com/tornadoweb/tornado/blob/master/tornado/gen.py#L203
咦,发现我的需求和楼主出奇的相似。不过对 MBP 不太感冒,不知道 extreme gen 2 如何?
回答这个问题我压力山大,感觉一不小心就暴露了年龄(手动捂脸)。

首先,程序使用了 UPX 进行压缩,会在原基础上更小一些。解压之后可以看大是用的 VC 7.0 编译。用资源工具打开可以看到对话框资源,那么基本上可以认为,程序使用 RC 定义界面,然后直接调用 Win32 API 实现功能。(对 MFC 不了解,不知道 MFC 编译出来是不是这个样子)
摸了摸我桌子上比 y50 还要早一代的老旧笔记本,不知道该说些什么(手动泪奔)
都考虑 X1 Carben 了,为啥不考虑 Extream 呢?
100 天前
回复了 huanyingch01 创建的主题 程序员 你们都是用什么编程字体的?
Fantasque Sans Mono + 1,Nerd Font 版
108 天前
回复了 onice 创建的主题 Python Python 开发大家用的什么开发工具呀?
PyCharm
VS Code
Nvim + 插件
144 天前
回复了 surfire91 创建的主题 Python 媳妇去面试,被问“ Python 的三要素是啥”
红黄蓝?
177 天前
回复了 fghjghf 创建的主题 Python 急急急, Python 多进程,如何传递 epoll?
通常 pickle 只是将对象转成二进制数据。`multiprocessing.reduction`中提供了对 socket 对象的 pickle 支持,实际上在二进制数据传输的背后还设计到了跨进程传递 fd,但是并未提供对 epoll 的支持。

要实现传递 epoll,一种方法就是按照我前面的示例代码,在创建 Pool 前先创建 epoll,可以使用全局变量保存 epoll,这样 worker 进程中可以直接使用;或者使用局部变量,然后通过 Pool 函数的 initializer 和 initargs 传递给 worker 保存起来之后用。直接通过 apply 或者 apply_sync 之类的函数传递会要求实现 pickle。

另外一种方法,通过`multiprocessing.reduction.send_handle`来发送句柄,参见 gist.github.com/bdarnell/1073945,一样的做法,只不过是把传递的内容换成 epoll.fileno,接受的时候使用 epoll.fromfd。

此外,也可以参照`multiprocessing.reduction`中 reduce_socket/rebuild_socket 的做法实现 epoll 的支持。

需要注意的是,跨进传递句柄会使得 fd 改变。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1659 人在线   最高记录 5043   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 18ms · UTC 16:51 · PVG 00:51 · LAX 08:51 · JFK 11:51
♥ Do have faith in what you're doing.