Quindi ho un array di 40000 elementi e desidero eseguire un metodo su ciascun elemento.Ruby - come si esegue un metodo su ciascun elemento dell'array su thread diversi?
Per ridurre il tempo necessario, sto pensando di eseguirlo su più thread. Forse dividere l'array in più array e girare su un thread diverso o qualcosa del genere. Ma non so come iniziare.
Dire che l'array è foo [], e il metodo da chiamare è bar(). bar() restituisce una stringa. Dopo l'esecuzione del codice, voglio essere in grado di combinare/sommare tutte le stringhe insieme in un'unica grande stringa.
C'è un modo per farlo? Ho cercato di mantenere la mia domanda il più semplice possibile, ma se vuoi maggiori informazioni, fammi sapere.
Grazie in anticipo!
Probabilmente la pena ricordare che 'a.pmap (n) {...}' può essere usato per limitarsi ai soli 'n' discussioni, il computer di Gbert90 sarebbe probabilmente arrabbiarsi con lui se ha provato a lanciare i thread 40k. –
Ho provato questo, ma non ha funzionato per un grande array. C'è qualche articolo/libro che può aiutare con questo? – Gbert90
Quanto è grande il tuo array? Hai provato a limitare il numero di thread come suggerito nel commento sopra con 'a.pmap (n) {...}'? Assicurati solo di n <= # di cpu nel tuo sistema. – drsnyder