V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  appleorchard2000  ›  全部回复第 1 页 / 共 1 页
回复总数  16
2017-02-27 21:25:53 +08:00
回复了 TheCure 创建的主题 云计算 两个前阿里 P9の争论,阿里云经典网络真的是互通的?
参考一下 openstack 就完了。很多人搞不清什么叫租户隔离。另我第一次使用阿里云,第一反应也是,操蛋的大内网。
2017-01-22 13:00:58 +08:00
回复了 douglas1997 创建的主题 问与答 请问 Vim 底部如何嵌入一个 shell 或者控制台?
用过 conqueterm
具体情况具体分析。
2017-01-10 19:29:51 +08:00
回复了 sampeng 创建的主题 程序员 想想我们程序员为啥永远拿不到主导权呢?因为不会忽悠?
是否主导跟是否程序员没有必然关系,看一下美剧硅谷,不同的角色所要面对的问题不同。在硅谷程序员作 CEO 也不稀少吧,当然中国是另外一回事,中国大约还没有摸到地平线在哪。个人亲身体会,云计算这种技术绝对主导的行业,靠吹牛就完全不行了,
@ooxxcc 我跟你一模一样,用的 vfio, 用了好几年了。
2017-01-04 11:33:44 +08:00
回复了 xiuc001 创建的主题 问与答 python 项目使用 tox 测试,遇到下面的问题,求 v 友帮忙
是在测 sysexec 这个项目吧,那个 setup.py 应该就是这个项目的 setup.py ,之所以在 /tmp 那个位置,是个暂时的,在安装 sysexec 的时候才有,过后就删了。出错的意思是说 sysexec 这个项目的 setup.py 需要项目中有个 README 文件,可是没有。
不必让 hello 一直死等吧,在 index 仍未被访问的情况下,可以让 hello 返回空的结果; index 访问的结果,都暂存在一个数据容器里,临时列表之类的,等街 hello 来取。
2017-01-02 01:36:11 +08:00
回复了 fjhh 创建的主题 Python 求问 Python 大神,多进程处理文本内数据
看了一下,估计是因为数据总量太小,所以分解的成本超过了带来的收益
2016-12-30 14:28:29 +08:00
回复了 lbp0200 创建的主题 Android 五儿子刷了 CM14/Android7,配合空调狗/冰箱,感觉还能再战 2 年
关键是,要支持电信是不是又要折腾。
这个文件是 mysql 启动起来才会有,跟从哪来装的应该没有什么关系。
2016-12-30 12:31:03 +08:00
回复了 xiuc001 创建的主题 问与答 大家离职的时候是怎么清理公司电脑上的私人信息的?
2016-12-30 11:46:16 +08:00
回复了 maojy1989 创建的主题 宽带症候群 用了阿里云香港的服务器,我快被 Google 验证码搞疯了
阿里云香港有个现象比较特殊,就是从国内过去的连接是被 nat 过去的。在阿里云上看到连入的 ip 不是你自己的 ip ,是电信上层网络中的一些地址(对,是一些地址,隔段时间会换一下)。我感觉是因为这个导致的,不知道 google 是怎么感知这一特征的。
2016-08-11 12:09:39 +08:00
回复了 SlipStupig 创建的主题 Python 最近研究 python 的一个小失落
@serial 至于你提到的数据库连接库问题,忘记说。如果是基于标准库中的 socket 来实现的,基于 eventlet/gevent 要实现异步很容易,直接 monkey_patch 就可以。 反而是 MySQLdb 这种基于 C 扩展实现的模块,才有问题。这种没法使用 monkey_patch 来解决,不过 eventlet/gevent 为这种情况提供了线程包装,可以将数据库操作扔到线程之中执行,以弥补这个缺陷。
2016-08-11 12:02:33 +08:00
回复了 SlipStupig 创建的主题 Python 最近研究 python 的一个小失落
@serial
twisted, tornado, asyncio, eventlet, gevent 这些主要就只有两种设计风格,各自风格内部是可以兼容的。比如 twisted 与 tornado 官方有为彼此兼容推出模块( http://www.tornadoweb.org/en/stable/twisted.html), eventlet 与 gevent 都是基于 greenlet ,甚至连 API 都是基本雷同。

monkey patch 是 eventlet 与 gevent 背后的惯用手法(当然你也可以不用 monkey patch, 而是对应得采用他们所提供的 io 库的非阻塞版本,标准库中的所有 io 模块对应的都有实现,包括 os, socket, queue 等等。) monkey patch 手法的手坏,我觉得仁者见仁智者见智,对我个人来说他似乎看起来是有些 evil ,但也确实在实际的使用场景中大有用武之地。

对于 asyncio 来说,与之搭配的异步 io 库基本都在这里: http://asyncio.org/。

以上几个框架,背后的 io 多路复用技术都是基于 select, poll, epool , kqueue ,实现了自己的 hub 或者叫 ioloop 。

纵上, twisted/tornado/asyncio 的 generator style 异步与 eventlet/gevent 的协程异步都可以完成自己的任务。相应的,各自阵营也都有自己完备的异步 io 解决方案,我看这里没有你所诟病的问题。至少, 基于 python 的技术栈是能够解决异步与阻塞的问题的,也是能够实现高并发的。

当然,要想在上述几个阵营之间切换就不现实了,还有 python2 -> python3 之间的升级也是问题。这是事实。

此外, 对于你所提到的几个事实,我有以下疑问:

说 openstack 自己实现了所有的异步驱动,这是啥意思, openstack 中的异步都是基于 eventlet 的 monkey_patch ,将标准库中的所有 io 行为替换为异步版本,据我所知这里不需要自行实现任何的所谓“异步驱动”。

“放弃高并发使用 django, flask ”这个说得也是奇怪, django 只是使用 python 来制作 wsgi 程序,而 wsgi 程序可以交给 apache/nginx 等来调用,此时的高不高并发,完全是由 apache/nginx 来支持的,跟 django 有什么关系。

另外 @GeekGao 说的 “ io 阻塞不阻塞跟语言没有关系”, 我不知道你是怎么理解的,使用 python 这种语言是即可以写出阻塞式的 io 程序,也可以写出非阻塞式的 io 程序,这只取决于你在调用系统调用的时候,是否指定了相应的参数而已。诚然 python 标准库中默认都是使用阻塞式的 io ,也许你诟病的就是这个?

最后,明确一下我个人的看法, python 完全是可以使用异步与高并发的, io 不是其短板, cpu 确实是(cpython)。时至今日, openstack, douban, zhihu 这些巨大软件体都基于 python 来实现的时候,我认为像 “ python 是胶水语言,是像 shell 一样的脚本语言”这样的论断,是不攻自破的。然而,这并不是我说我很喜欢 python ,与 go 语言的异步相比, 我也认为 python 真的有够折腾,有够 ugly ,而且其 GIL 导致它只能使用 ”进程 + 协程“ 的组合,而不能使用 "线程 + 协程“ 的组合,等等。 python 确实让我感觉不爽,不过没有在座某些人说的那么不堪。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   800 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 22:00 · PVG 06:00 · LAX 15:00 · JFK 18:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.