Main thread alla massima potenza

di il
2 risposte

Main thread alla massima potenza

Ho scritto in java un generatore di cruciverba utilizzando un algoritmo ricorsivo sfruttando il backtracking e un solo thread, ovvero il main thread.
Essendo un problema di O(n!), per generarmi un cruciverba 5x5 a schema libero da un dizionario di circa 100 000 parole, impiega circa 8 s, ma ho visto che durante l'esecuzione l'utilizzo delle CPU su un quad core non arriva mai al 100% da nessuna parte.
Mi domandavo se fosse possibile massimizzare l'utilizzo della CPU del main thread.
Ho provato già settandogli la MAX_PRIORITY ma senza nessun miglioramento. Qualche consiglio??

Grazie e buon weekend

2 Risposte

  • Re: Main thread alla massima potenza

    Paolovox ha scritto:


    Ho scritto in java un generatore di cruciverba utilizzando un algoritmo ricorsivo sfruttando il backtracking e un solo thread, ovvero il main thread.
    Ho provato già settandogli la MAX_PRIORITY ma senza nessun miglioramento. Qualche consiglio??
    La priorità cambia poco/niente se hai 1 solo thread. Oltretutto il significato dei livelli delle priorità e la gestione stessa delle priorità è abbastanza particolare (ci sarebbe da dire di più ..).

    Pur non sapendo cosa hai scritto, potrebbe esserti utile il "fork/join framework", disponibile solo da Java 7 in poi. C'è il tutorial ufficiale: Fork/Join
    Che ovviamente va compreso bene prima di usarlo.
  • Re: Main thread alla massima potenza

    Ti ringrazio per la risposta.
    Adesso però non ho il tempo per rimodellare il generatore di cruciverba in multithreading e quindi sfruttando più memoria e strutture dati intelligenti, mi accontento dei tempi attuali.
    A settembre sarà il momento
Devi accedere o registrarti per scrivere nel forum
2 risposte