salve!
volevo sapere se esiste un modo per controllare se un programma è già avviato in modo tale da poter avviare due volte lo stesso programma.
sapete dirmi qualcosa?
salve!
volevo sapere se esiste un modo per controllare se un programma è già avviato in modo tale da poter avviare due volte lo stesso programma.
sapete dirmi qualcosa?
Esistono diverse soluzioni, tutte già ampiamente discusse anche qui sul forum.
La più gettonata ed efficace (spero intendessi dire per NON avviare due volte lo stesso programma) è far sì che l'applicazione, come prima cosa, acquisisca un lock su una porta (cioè, crei una ServerSocket su una determinata porta). Se riesce ad acquisire il lock (ovvero, se riesce a creare la ServerSocket), quella è la prima istanza e può continuare a lavorare. Se non ci riesce, c'è già un'altra istanza che sta impegnando quella porta.
Esistono altre tecniche: lock su file, lock su database, uso di metodi nativi, ecc. ma questa è la più facile e sicura.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
interessante!
l'unica cosa che mi chiedo è se non occupi troppe risorse visto che si ha praticamente un servizio quasi inutilizzato sempre attivo.
E che risorse dovrebbe occupare... la Socket è solo "bindata" all'IP su quella porta... non deve attendere alcuna connessione (non necessariamente), né fare alcunchè. In realtà non c'è nessun servizio sotto quella socket... è solo un lock.Originariamente inviato da fermat
interessante!
l'unica cosa che mi chiedo è se non occupi troppe risorse visto che si ha praticamente un servizio quasi inutilizzato sempre attivo.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
ah ok ok.
mi sto un pò la cosa.
grazie!!