Perl threads join 返回值
来源:互联网 发布:js实现滑动选择日期 编辑:程序博客网 时间:2024/06/05 01:01
写一个多线程脚本过程中遇到一个奇怪的问题,线程的返回值总为空,仔细探究了一下,终于搞明白了原因。
Perl 多线程创建过程中可以显示或者隐式的指定context,可以理解为返回值内容,如果没有显示指定则会根据脚本写法来推测返回值。
如下脚本的例子:
use threads; # return scalar sub test{ return "this is testing @_\n"; } # method 1 threads->create(\&test,1); threads->create(\&test,2); # method 2 # threads->create({context=>'scalar'},\&test,1); # threads->create({context=>'scalar'},\&test,2); # method 3 # $t1 = threads->create(\&test,1); # $t2 = threads->create(\&test,2); for(threads->list){ print $_->join }
- 使用method 1,隐式创建一个返回void 的线程,相当于{context=>'void'},运行无任何结果。
- 使用method 2,显式创建一个返回scalar 的线程,运行结果与期望相同。
- 使用method 3,隐式创建一个返回scalar 的线程,运行结果与期望相同。
综上所述,好的做法是如果需要返回值的话,最好显示指定context,以免日后出现更多的问题。
- Perl threads join 返回值
- Perl threads 摘要
- perl join
- An example for Perl Multi-threads
- Perl join 函数
- 解决perl 调用system返回值问题
- Perl获得调用shell地返回值
- Perl 函数返回值的问题
- perl 根据函数返回值判断
- Perl中system的返回值问题
- perl 之 join和 split
- Threads
- Threads
- Threads
- Threads
- [Perl]对非标量函数返回值的处理
- perl的子程序sub返回值不改变的解决方法
- perl中push用法,子程序返回值的反思
- Howto: run several robinhood instances on multiple filesystems
- PHP如何获得电脑的MAC地址!
- linux日志管理应该知晓的5大命令详解
- keepalived配置文件详解
- 编写自己的sniffer(一)
- Perl threads join 返回值
- Java类学习
- jxl 遭遇读取sheet错误,不能getRows jxl.common.AssertionFailed
- 网络编程的一些函数
- 《Android之大话设计模式》--设计模式 创建型模式 第一章:简单工厂模式
- ZuckerReport Review
- 行式报表判断单元格是否可以写
- Django安装
- 【Cocos2d-x游戏引擎开发笔记(18)】图形绘制