2010-07-22 9 views
6

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?

+0

Sembra che tu voglia un oggetto Trace :: Coda. – MkV

+0

Cosa intendi per 'stessa operazione'? @myArray è condiviso? –

risposta

2

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.

Problemi correlati