Ho il seguente codice Perl:Sta spingendo una variabile su un array un'operazione thread-safe?
push(@myArray, $myValue);
è l'operazione atomica, o dovrò utilizzare i blocchi, se più thread si esibiranno questa stessa operazione su molti fili?
Ho il seguente codice Perl:Sta spingendo una variabile su un array un'operazione thread-safe?
push(@myArray, $myValue);
è l'operazione atomica, o dovrò utilizzare i blocchi, se più thread si esibiranno questa stessa operazione su molti fili?
La sicurezza del thread della maggior parte delle funzioni in perl dipende dalle routine C sottostanti e, nel caso di built-in, come push
non si parla di sicurezza del thread, quindi è necessario assumere che non lo sia.
Controlla la pagina man perlthrtut
, in particolare la sezione "Semafori di base". Utilizzando un semaforo è possibile imporre l'esclusione reciproca in sezioni arbitrarie di codice.
Sembra che tu voglia un oggetto Trace :: Coda. – MkV
Cosa intendi per 'stessa operazione'? @myArray è condiviso? –