zoukankan      html  css  js  c++  java
  • 2.Perl 多线程:Threads(线程返回值)

     1 use warnings;
     2 use strict;
     3 use threads;
     4  
     5 sub TEST{
     6     print "Hello, World!
    ";
     7     return (qw/1 2 3 4 'a'/);
     8 }
     9  
    10 #返回列表方法1
    11 my ($t1) = threads->new('TEST');
    12 print $t1->join, "
    ";
    13  
    14 #返回列表方法2
    15 #
    16 my $t2 = threads->new({'context' => 'list'}, 'TEST');
    17 print $t2->join, "
    ";
    18  
    19 #返回单个值
    20 my $t3 = threads->new('TEST');
    21 print $t3->join, "
    ";
    22 getc();

    对于函数调用, 如果要得到返回列表, 你应要用一个@values来获得返回值:

    1 #eg.
    2 my @values = &test;
    3 #如果函数调用中返回列表, 如你用一个$value获得返回值, 应会得到列表的最后一个元素的值
    4 #eg.
    5 my $value = (1,2,3,4 'a');
    6 print $value;
    7 #result:'a'
    8 #注意, 这跟my $value = 1,2,3,4, 'a';不同
    9 #

    在多线程中, 想得到线程返回程, 那就调用join方法, 如果没必要获取返回值, 要调用detach方法, 如果两个都不调用, 会得到一个警告。
    一般来说, 都应调用join/detach方法。

  • 相关阅读:
    切分文本行
    oracle 导出【转】
    SQL 表A不在表B记录
    Oracle 数据库操作
    oracle 跨表更新
    WPF : ViewPort3D, ModelVisual3D XAML example
    WPF : 3D 最简单的WPF 3D
    WPF : StoryBoard用法
    WPF/SilverLight学习计划
    WPF : 3D 给GeometryModel3D对象贴图
  • 原文地址:https://www.cnblogs.com/perl6/p/6120025.html
Copyright © 2011-2022 走看看