免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1155 | 回复: 0
打印 上一主题 下一主题

关于线程的两个问题,望赐教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-19 15:27 |只看该作者 |倒序浏览

有两个问题,1,在CPAN中和perl 5.8Documentation中都只涉及到了变量的lock机制,并没有介绍lock (&xxx)或sub xxx:locked{};是不是在5.8中已经取消了对一个函数或子程序的锁机制?如果无法对一个子程序上锁,我想先对变量上锁,然后将子程序返回值赋给这个变量,这样可否达到锁住这个字程序的目的?
如,
  our $i :shared;

   线程中:
  my $temp;
  {lock ($i);
    $i = func();
    $temp = $i;}

这样是不是可以把调用func()这个过程锁住?保证func()操作的原子性?
2,thread—>new(\&xxx,$aaa)和thread—>new(sub{xxx($aaa)})有什么区别?\&xxx应该是得到子程序xxx的内存地址吧?为什么我用第二种可以跑通,但是第一种不行呢?

小白一个,还请高手耐心赐教
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP