#!/usr/bin/perl -w use threads; use threads::shared; use DBI; use DBD::mysql; my $dbh = DBI->connect("dbi:mysql:host=xxx.xxx.xxx.xxx;database=xxx", +"xxx","xxx"); share($dbh); # its not work!! my $threads_cnt = 4; my @threads; for (my $i = 0;$i < $threads_cnt ;$i++) { $threads[$i] = threads->create(\&test); } for (my $i = 0;$i < $threads_cnt ;$i++) { $threads[$i]->detach; } while(1) {sleep;} exit; sub test() { my $tid = threads->self->tid; my $cursor = $dbh->prepare("select * from users"); # each t +hread can't share $dbh.. $cursor->execute(); my $result = $cursor->fetchrow(); $cursor->finish(); $dbh->disconnect; open (FILE, ">files/test_$tid.txt"); print FILE $result; close (FILE); }
In reply to Sharing DBI handle per each thread by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |