Integrazione dell'esecuzione separata del thread all'interno del metodo o avvolgere il metodo con la discussione

0

Supponiamo, ho un po 'di risorse e un codice che richiede tempo, che voglio organizzare come metodo separato. Per ottimizzare le prestazioni, questo codice dovrebbe essere eseguito nel thread separato.

Ora la domanda, dove definire questo thread:

  1. All'interno (incorporato) di questo metodo «pesante»;
  2. O per avvolgere l'esecuzione di questo codice della classe «pesante» dal thread.

In altre parole, dal punto di vista della progettazione e delle best practice, dovrei incorporare l'esecuzione separata del thread o è meglio scrivere questo codice senza thread e se è necessario eseguire questo codice in un altro thread, lo sviluppatore lo avvolgerà con il thread separato?

Aggiornamento:
Il motivo principale per cui pongo questa domanda è che voglio fornire una soluzione chiavi in mano, che può essere usata come una scatola nera plug-and-play, e non preoccuparti se l'utente finale dimenticherà di eseguire questo codice nella thread separata.

    
posta Mike B. 14.07.2015 - 14:54
fonte

2 risposte

4

Separa le tue preoccupazioni. La logica aziendale complicata dovrebbe mai essere mescolata con la logica di programmazione che è anche complessa. Pertanto, implementa qualsiasi soluzione intelligente che desideri, ma avvolgila in un metodo ben definito e quindi pianifica che .

    
risposta data 14.07.2015 - 14:59
fonte
0

Se la tua implementazione della logica pesante è un metodo ordinario e privo di thread, è molto più facile scrivere testcode (unit / integration-Tests) per esso e eseguirne il debug. Scrivere i test di junit per i thread è un incubo.

    
risposta data 14.07.2015 - 16:20
fonte

Leggi altre domande sui tag