Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142

    metodo definito dentro main

    Ciao a tutti,

    vorrei aiuto per comprendere il seguente codice che ho sotto mano (preso da fonti web sulla libreria bluecove):

    codice:
    public class RemoteDeviceDiscovery {
       public static final Vector/*<RemoteDevice>*/ devicesDiscovered = new Vector();
       public static void main(String[] args) throws IOException, InterruptedException {
          [....];
          synchronized(inquiryCompletedEvent) {
             boolean started = LocalDevice.getLocalDevice().getDiscoveryAgent().startInquiry(DiscoveryAgent.GIAC, listener);
             if (started) {
                System.out.println("wait for device inquiry to complete...");
                inquiryCompletedEvent.wait();
                System.out.println(devicesDiscovered.size() +  " device(s) found");
             }
          }
       }
    }
    Mi pare come se dentro il main fosse definito un altro *metodo* (quello synchronized). Inoltre nel main ci sono altre istruzioni prima di questo *metodo*, le ho omesse perchè sono ininfluenti dato che se si lancia in esecuzione la classe parte il *metodo*. Come funziona di preciso?

    Grazie in anticipo

    Pete
    <esistono cose che non esistono>

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142
    Ma dove sbaglio nel postare il codice??
    <esistono cose che non esistono>

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Non so come posti il codice, è sufficiente il tag code

    synchronized è utilizzata con il multithread, per garantire che 2 o più thread non accedano ad un blocco di codice. Ad esempio, se ad un metodo anteponi questa parola chiave, fai in modo che un solo thread alla volta acceda al metodo.

    Puoi leggere qui http://download.oracle.com/javase/tu.../syncmeth.html e la pagina dopo.

    Comunque quel codice è pre-generics...quindi direi di un pò di annetti fa, ergo, è obsoleto!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Pete
    Ma dove sbaglio nel postare il codice??
    Semplice: non devi usare il pulsante "CODE" della toolbar di creazione del messaggio (quella serve per inserire una sola riga di codice), ma devi inserire i tag a mano, come nell'esempio riportato qui sotto:

    [CODE]
    incolli il codice come fosse una parte del messaggio
    [/CODE]


    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
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142
    Si che è obsoleto me ne ero accorto, ma non ho trovato di meglio per aiutarmi con le specifiche java riguardo la connessione bluetooth seriale.
    Il significato di synchronized lo conoscevo, quello che non capisco è perchè se lancio la classe vengono eseguite come prime istruzioni quelle che sono dopo la parola sync (vi ho già detto che prima ce ne erano altre, ho messo [...]). Inoltre com'è la sintassi , ovvero, se sto scrivendo dentro il main, come è possibile definire quella specie di altro metodo??
    <esistono cose che non esistono>

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.