Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Controllo istanza programma

    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?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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

  3. #3
    interessante!
    l'unica cosa che mi chiedo è se non occupi troppe risorse visto che si ha praticamente un servizio quasi inutilizzato sempre attivo.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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.
    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.


    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

  5. #5
    ah ok ok.

    mi sto un pò la cosa.
    grazie!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.