Я хочу реализовать многопоточность в моем коде, чтобы сократить время. Я выполнил Thread :: Queue, но я получаю ошибку. Потому что код содержит SQL-запросы. Я не могу получить доступ к базе данных через поток одновременно.Реализация многопоточности в коде содержит вызовы SQL
sub worker{
while($q->queue){
if (exists $href->{$issue}->{'parent'}) {
foreach my $parent (sort keys %{$href->{$issue}->{'ddts_parent'}}) {
my $sql_dest1 ="select pkey from jiraissue where ID=(Select Query')";
my $sth_dest1 = $dbh->prepare($sql_dest1);
$sth_dest1->execute();
foreach (my $dest_array = $sth_dest1->fetchrow_array) {
if ($dest_array ne '') {
------------some code here------------------------------
#to retain link between projects and delete Active url.
my $remote_key=$dbh->selectrow_array("select Query)");
my $temp_ddtsid=$dbh->selectrow_array("select Query')");
$jira->update_issue($remote_key,$update);
}
}
else {
$jira->update_issue($src_issue,$update);
}
}
}
}
}
if (exists $href->{$src_issue}->{'ddts_child'}) {
foreach my $ddts_child (sort keys %{$href->{$src_issue}->{'ddts_child'}}) {
my $sql_dest ="select Query')";
my $sth_dest = $dbh->prepare($sql_dest);
$sth_dest->execute();
foreach (my $dest_array = $sth_dest->fetchrow_array) {
if ($dest_array ne '') {
$jira->update_issue($src_issue,$update);
}
#to retain link between projects and delete Active url.
my $remote_key=$dbh->selectrow_array("select Query");
my $temp_ddtsid=$dbh->selectrow_array("select Query");
}
}
, пожалуйста, дайте мне решение, как реализовать многопоточность и семафор.
Спасибо amon ... Можем ли мы использовать Thread :: семафор для обработки этих запросов базы данных для выполнения одного из них после другого? Если возможно, дайте пример примера. Как реализовать семафор. пожалуйста, –
@ user3177669 Да, конечно, мы можем использовать 'Thread :: Semaphore' здесь, но это не полезно: создать новое соединение с базой данных внутри каждого потока. Затем каждый поток может выполнять запросы параллельно. База данных отвечает за упорядочение запросов, а не от вашего кода. Тем не менее, я был бы удивлен, если бы резьбовое решение было быстрее, чем не-резьбовое решение здесь. – amon
скажите мне другое решение для этого ... Я сократил время, пожалуйста. –