免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: py
打印 上一主题 下一主题

Coro模块中文文档 [复制链接]

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
11 [报告]
发表于 2013-09-27 16:51 |只看该作者
回复 10# laputa73


   
    没事,谁解答都一样,只要能把问题解答出来就好。

    你看我重新叙述一遍,看看理解是否到位?

    首先先执行程序块外的print “完了”. 然后信号量由于设定锁定的值为0,而且不能为负数。
    所以$sem+1,然后执行$sem->down 再然后执行async里面的程序块,且$sem->up。

     那么到了这里,$sem的值就是1了,也就是直到程序的最后,$sem的信号就是1,对吗?
   

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
12 [报告]
发表于 2013-09-27 16:55 |只看该作者
本帖最后由 laputa73 于 2013-09-27 17:16 编辑

你打出来看看啊,我怎么觉得是0啊.{:3_182:}
你把sem->down理解为一个sleep/cede/goto/中断,这里是一个被阻塞的请求,它被挂起了
在asys里面,sem->up,变成1
然后sem->down可以运行了,变成0
然后继续
  1. use Coro;
  2. my $sem=new Coro::Semaphore 0;
  3. async{
  4.   my $s=$sem->count;
  5.    print "unlock $s.\n";
  6.    $sem->up;
  7.    $s=$sem->count;
  8.    print "4. $s.\n";
  9. };
  10. my $s=$sem->count;
  11. print "结束了.$s.\n";
  12. $sem->down;
  13. $s=$sem->count;
  14. print "over,$s.\n";
复制代码
  1. -bash-3.00$ /usr/bin/perl tcsem.pl
  2. 结束了.0.
  3. unlock 0.
  4. 4. 1.
  5. over,0.
  6. -bash-3.00$
复制代码

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
13 [报告]
发表于 2013-09-27 16:59 |只看该作者
本帖最后由 laputa73 于 2013-09-27 17:27 编辑

请问一下@py有没有用过python的gevent?
这个和coro+anyevent有无可比性?

"gevent封装了很多很方便的接口,其中一个就是monkey
from gevent import monkey
monkey.patch_all()
这样两行,就可以使用python以前的socket之类的,因为gevent已经给你自动转化了,真是超级方便阿。"

这个很诱人啊.
要是perl也支持这么一patch.原来的io,socket都变成event base了就方便了.


论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2013-09-27 19:14 |只看该作者
我一行python都没写过。我是一个不喜欢接受新事物的人,用熟了一个就尽量不换下一个,换来换去,学习成本太高

Coro有两个类似的模块,所有以前基于LWP写的模块,只要use Coro::LWP就可以非阻塞了。另外,还有Coro::Socket,这个模块是以非阻塞的方式模拟了IO::Socket::INET的API

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
15 [报告]
发表于 2013-09-27 20:28 |只看该作者
回复 14# py


    但是只是类似啊,
    而不是替换
   我是希望它能象Net::INET6Glue那样,use一下,就可以扩展原有使用Net::INET的模块.
   而不是用新的socket类重新去实现一遍原来的模块
   

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
16 [报告]
发表于 2013-09-27 22:28 |只看该作者
回复 12# laputa73


    这个真的很难理解啊...我到现在还是没摸清楚这个信号量的变化.

    可能思考模式有点问题,我还需要仔细做点研究.

    还有想请教"冗余"的问题,这个功能在PERL里面有什么模块实现吗?

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
17 [报告]
发表于 2013-09-27 22:51 |只看该作者
不知道你说的冗余是什么?

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
18 [报告]
发表于 2013-09-28 12:24 |只看该作者
回复 17# laputa73


    额..你和我一样都不懂啊....汗..我也没理解啥意思...

    很高深的玩意..

论坛徽章:
0
19 [报告]
发表于 2013-09-28 13:48 |只看该作者
偶觉得coro的文档是最烂的 木有之一 吐槽下的德国佬的英文,其实最大的问题是经常讲一段好长的说明,看完不知道说了什么,是偶英语忒差了吗

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
20 [报告]
发表于 2013-09-28 19:34 |只看该作者
回复 19# 斯文牛氓

呵呵,其实出了IT领域,科学性稍强一些的杂志都有些这种感觉。
Marc Lehmann的英语肯定不差,他的文档质量是格外高的,但我记得他文档里的确看到过单复数一类的错误,属于mistake。
他应该是很咬文嚼字的人,所以文档有时候会有复杂句,严谨而准确。这和日本人写的文档对比鲜明,膏药国人就会说些个简单句还总出现低级语法错误
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP