【发布时间】:2017-11-09 09:50:22
【问题描述】:
我的脚本有对象的散列 - 所有单个类 (SampleClass.pm)。以下是我用来创建对象的方式。
$objectHash{'foo'} = SampleClass->new();
$objectHash{'bar'} = SampleClass->new();
.
.
然后我生成了几个线程(比如 5 个),每个线程都按照指示进行工作。
现在说线程 1 写入一个对象 -
$objectHash{'foo'}->settimeWhenISaidHello($time);
然后退出。现在,当 Thread2 开始工作并检查如下值时
$lastHelloTime = $objectHash{'foo'}->gettimeWhenISaidHello($time);
它得到未定义或空值。我想跨线程共享这些值。怎么可能?
另外,我的类构造函数new 具有哈希和哈希数组作为成员变量,如下所示。
sub new
{
.
.
listOfGuysToSayHello = {}; #This is an array with guy name as key and array value as data
SchoolsWithStudentsToSayHellow = {}; #this is array of hashes
.
.
}
此外,我已经解决了这个问题 - how to access perl objects in threads 并且答案没有满足我的要求。
请告诉我你的想法。
【问题讨论】:
标签: multithreading perl oop object