#!/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 thread 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); }