V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lolizeppelin  ›  全部回复第 34 页 / 共 53 页
回复总数  1056
1 ... 30  31  32  33  34  35  36  37  38  39 ... 53  
2018-12-14 15:20:50 +08:00
回复了 wcsjtu 创建的主题 Python Python3.6 asyncio 的协程是如何实现主动调度的?
@wcsjtu

不是... eventlet 里的 sleep 和一般的 sleep 都一个作用
用于放弃资源占用 和 epoll 无关

epoll 的作用是在 io 的时候自动切换到主循环那个协程,猴子补丁也就是让你不用自己写 epoll 代码而已

举个例子
os.listdir 如果扫描一个大文件夹,当前协程会一直占用资源 不会切换到主线程. 其他协程就不会被调度到,会被饿死
所以用 os.walk 来扫文件夹并加入计数器. 计数器超过一个值就调用 eventlet.sleep(0)切换到主线程


所以你不要光盯着 io, io 耗时,大量计算也会耗时的.自然需要有放弃占用的方法的

同样设计在 lock 里 lock 了就切换到主循环 release 就找有 lock 需要的协程切换过去

tornado 以前是怎么做的我不清楚, 至少 gevent evelet 应该是这样的 asyncio 应该也是差不多的
因为要解决的问题是一致的
2018-12-14 15:08:59 +08:00
回复了 wcsjtu 创建的主题 Python Python3.6 asyncio 的协程是如何实现主动调度的?
补充下

所有的 io 都是 都是其他协程切换到主线程的哪个协程
sleep 也是其他协程切换到主线程的那个协程
主线程的那个协程主要负责调度

release 可以是协程间互相切换也可以是切换到主线程那个协程
2018-12-14 14:57:05 +08:00
回复了 wcsjtu 创建的主题 Python Python3.6 asyncio 的协程是如何实现主动调度的?
asyncio 不熟,但是应该和 eventlet 原理一致

在 eventlet 里
有一个队列一直在不停的排序,排序的 key 是时间戳

主循环一直扫这个队列, 当前时间戳>=排序 key 就调用这个 key 对应的协程

所有的协程都是在这个队列里排序等待执行...协程的 sleep 就是修改排序的时间戳让自己的调度顺序押后

lock 也是类似原理


你对应到 asyncio 里看看调度是不是这个理
@miniyao
你不贴代码怎么帮你

谁懂你代码里做了啥影响了进程
@richzhu

和航空母舰有毛线关系
压缩这频繁计算的频繁复制 buf 的
python 又不能用多核还跑到一个进程里
你这要么进程不干活了 要么压缩死慢
python 这种不能用多核的渣渣 压缩不想办法 fork 到其他进程里干 你想卡死当前进程么

再说了 python 性能这么烂 需要经常压缩的话直接 shell 执行是性能最好的, 条件允许能不用 native 代码去压缩就不要用 python 去压文件
2018-12-10 14:37:14 +08:00
回复了 sfree2005 创建的主题 Flutter Flutter live 讨论
嵌套还好吧 不嵌套就写一堆 xml 还不是一样 2333
哪个行业不是靠销售............游戏还不一个卵样
2018-12-07 14:09:48 +08:00
回复了 lolizeppelin 创建的主题 问与答 Flutter 发了 Stable 居然没人讨论
@laike9m
看到啥?漫画软件?

之前忘记传 git 了 233

https://github.com/lolizeppelin/fluttermobile
2018-12-07 11:56:44 +08:00
回复了 lolizeppelin 创建的主题 问与答 Flutter 发了 Stable 居然没人讨论
不用等把 这基本上是站着 react 的肩膀上开始做的

基本 UI 组件都全了......

以后的更新都是动画部分了吧
2018-12-07 11:11:27 +08:00
回复了 lolizeppelin 创建的主题 问与答 Flutter 发了 Stable 居然没人讨论
我自己到是做了个漫画软件玩
但是没讨论群可以提升的 Orz
win 的原理差不多 管道什么的 都差不多逻辑

因为没 fork 处理起来比较复杂 subprocess 里怎么处理的详细读下就好,win 相关的代码还是蛮恶心的

但主要是要清楚系统这部分的原理就好了
这个和 python 没关系

了解下 wait waitpid fork 父子进程 信号 相关的 linux 知识

回头再来看你的问题就一目了然了
2018-11-29 11:16:46 +08:00
回复了 XIVN1987 创建的主题 Python 感觉 Linux 下安装 Python 包不如 windows 下清晰
和清晰没任何关系

是规范化系统管理的问题

开发喜欢瞎搞不按系统规范来做自然觉得束缚
2018-11-29 10:41:28 +08:00
回复了 XIVN1987 创建的主题 Python 感觉 Linux 下安装 Python 包不如 windows 下清晰
开发人员就喜欢瞎咋折腾环境
看着就烦
和 python 没关系
环境变量你用什么语言都一样, 因为操作系统里存的就是字符串
看你内容...如果你循环内容需要复杂的上下文那就靠守护进程 sleep, 精准问题可以通过调用系统时间定期补偿

计划任务里的常见的数据库定期脚本注意通过 linux 文件锁来避免重复执行即可
2018-11-28 16:24:43 +08:00
回复了 fl2d 创建的主题 程序员 求推荐一款有 3 个以上 usb3.0+1 个 thunderbolt3 的笔记本
dell 3530 工作站呀
2018-11-26 17:42:40 +08:00
回复了 hugebug 创建的主题 程序员 新项目 敢不敢用 Flutter
仔细看了下楼主需求 完全可以上
1 ... 30  31  32  33  34  35  36  37  38  39 ... 53  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   997 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 21:42 · PVG 05:42 · LAX 13:42 · JFK 16:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.