亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5578 | 回復: 13
打印 上一主題 下一主題

perl多線程內存溢出,段錯誤 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-11-03 15:03 |只看該作者 |倒序瀏覽
#!/usr/bin/perl
#
use threads;
use Thread:ueue;
my $q = Thread:ueue->new();
my @array=(1..1000000);
  foreach $t(@array)
      {
             $book{$t}=$t*2;
#             printf("$name produce $book{$t}\n";
       }
foreach $r(sort keys %book)
    {
        $q->enqueue($r);
#       printf("$name produce $r\n";
    }
    $q->end();
sub consume {
open(outfile,">>syslog5";
    while(defined(my $r = $q->dequeue())) {
print outfile (localtime(time)."consume $r   @_.\n";
     }

}
sub consume2 {
  foreach $s(sort keys %book)
      {
              $r=$q->dequeue();
              printf("consume $r @_.\n";
          }
}
my $consumer1 = threads->create(\&consume, "consume1";
my $consumer2 = threads->create(\&consume, "consume2";
  my $consumer3 = threads->create(\&consume, "consume3";

  $consumer1->join();
  $consumer2->join();
    $consumer3->join();

在unix大型機執(zhí)行了如上代碼,機器內存足夠大,出現(xiàn)了如下報錯
Out of memory!
Segmentation fault (core dumped)
感覺數(shù)據(jù)量也不是非常大啊,怎么就內存溢出了,求助
walklan 該用戶已被刪除
2 [報告]
發(fā)表于 2014-11-03 15:17 |只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽

論壇徽章:
46
15-16賽季CBA聯(lián)賽之四川
日期:2018-03-27 11:59:132015年亞洲杯之沙特阿拉伯
日期:2015-04-11 17:31:45天蝎座
日期:2015-03-25 16:56:49雙魚座
日期:2015-03-25 16:56:30摩羯座
日期:2015-03-25 16:56:09巳蛇
日期:2015-03-25 16:55:30卯兔
日期:2015-03-25 16:54:29子鼠
日期:2015-03-25 16:53:59申猴
日期:2015-03-25 16:53:29寅虎
日期:2015-03-25 16:52:29羊年新春福章
日期:2015-03-25 16:51:212015亞冠之布里斯班獅吼
日期:2015-07-13 10:44:56
3 [報告]
發(fā)表于 2014-11-03 15:41 |只看該作者
這里內存不是問題。稍微改一點不和諧的地方,5.20 32位strawberryperl 最多占980M
  1. use strict;
  2. use warnings;

  3. use threads;
  4. use Thread::Queue;

  5. my $q = Thread::Queue->new();
  6. my %book;

  7. my @array=(1..1000000);

  8. for my $t (@array) {
  9.     $book{$t}=$t*2;
  10. }

  11. for my $r (sort keys %book) {
  12.     $q->enqueue($r);
  13. }

  14. $q->end();

  15. sub consume {
  16.     my $i = shift;
  17.     open my $outfile, ">>syslog$i";
  18.     while(defined(my $r = $q->dequeue)) {
  19.         print $outfile (localtime(time)."consume $r   @_.\n");
  20.     }
  21. }

  22. sub consume2 {
  23.     for my $s (sort keys %book) {
  24.         my $r = $q->dequeue;
  25.         printf("consume $r @_.\n");
  26.     }
  27. }
  28. my $consumer1 = threads->create(\&consume,1, "consume1");
  29. my $consumer2 = threads->create(\&consume,2, "consume2");
  30. my $consumer3 = threads->create(\&consume,3, "consume3");

  31. $consumer1->join();
  32. $consumer2->join();
  33. $consumer3->join();
復制代碼

論壇徽章:
0
4 [報告]
發(fā)表于 2014-11-03 16:11 |只看該作者
你好,你這么做和我那么賦值,有什么區(qū)別么回復 2# walklan


   
walklan 該用戶已被刪除
5 [報告]
發(fā)表于 2014-11-03 16:15 |只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽

論壇徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亞冠之首爾
日期:2015-06-23 15:37:0015-16賽季CBA聯(lián)賽之天津
日期:2016-01-22 18:58:2915-16賽季CBA聯(lián)賽之佛山
日期:2016-05-31 19:18:0815-16賽季CBA聯(lián)賽之同曦
日期:2016-08-10 16:26:3315-16賽季CBA聯(lián)賽之遼寧
日期:2018-01-10 11:47:40
6 [報告]
發(fā)表于 2014-11-03 16:27 |只看該作者
贊同樓上的,第一種是直接把所有的數(shù)據(jù)都讀取到數(shù)組里面,也就是一次性讀取到內存,這樣數(shù)據(jù)要是很大的話,你內存不夠肯定會出現(xiàn)問題,
第二種是每次讀取一個數(shù)據(jù),處理完就釋放了,當然內存占用就小的多了。

論壇徽章:
1
羊年新春福章
日期:2015-04-28 20:40:58
7 [報告]
發(fā)表于 2014-11-03 21:10 |只看該作者
贊同,我也覺得數(shù)組特別耗內存~

論壇徽章:
0
8 [報告]
發(fā)表于 2014-11-04 09:51 |只看該作者
多謝回復 5# walklan


   

論壇徽章:
0
9 [報告]
發(fā)表于 2014-11-04 14:45 |只看該作者
你好,這樣修改以后我增加為10個線程,還是報錯,內存溢出Out of memory!
Segmentation fault (core dumped)回復 5# walklan


   

論壇徽章:
0
10 [報告]
發(fā)表于 2014-11-04 14:45 |只看該作者
你好,這樣修改以后我增加為10個線程,還是報錯,內存溢出Out of memory!
Segmentation fault (core dumped)回復 3# zhlong8


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP