#!/usr/bin/perl use threads; use Thread::Queue; use myClass; use warnings; use Fcntl ':flock'; my $q = Thread::Queue->new(); open(FILE,"database.txt"); open(FILE2,">>answers.txt"); $q->enqueue($_) while(); for(0 .. 9) { threads->new(\&worker, $q); } $_->join for threads->list; sub worker { my $queue = shift; while( my $item = $queue->dequeue) { chomp($item); my $p = myClass->new(); my $physics = $p->getRandom(); flock(FILE2,LOCK_EX); print FILE2 "$item|$physics"; print "$item|$physics"; flock(FILE2,LOCK_UN); } return; }