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

    [JAVA] Thread, Hash e Multicast

    Sto sviluppando un progetto per l'universita'...

    Nella fattispecie eccolo qui
    http://www.di.unipi.it/~marcod/Didat.../progetto.html

    Le mie domande (per adesso) riguardano solamente la prima parte... quella della shell...

    Allora, qui ho alcuni problemi...

    1) Quale struttura dati mi conviene usare per memorizzare un array di host, con dentro, per ogni host, un array di directory, nelle quali, a loro volta, c'e', per ogni directory, un array di files contenuti? Devo usare Vector, HastTable o HashSet? e come?

    2) Per implementare il discovery in Multicast ho pensato di usare i thread. E' tanto brutta l'idea di tre thread, di cui due per il multicast (una client e una server) ed uno per la console? in questo modo tutti i metodi (pubblica, spubblica, ls, lsh) potrebbero essere implementati nel monitor...

    2a) pero' qui ho un altro problema, ovvero, mentre il thread multicast di ricezione e' sempre attivo, quello di invio si attiva solo con pubblica/spubblica, ma questi comandi li darei dentro il thread console, quindi, devo usare gli interrupt per svegliare il thread di invio? o mi conviene mettere la console nel main ed usare solamente i due thread del multicast?


    Sono stato chiaro? credo di no!
    Purtroppo mi ci sto intrippando il cervello...

    Grazie per l'aiuto.
    [Homepage] [Contattami]
    Powered by: Ubuntu - Debian - Gentoo
    Developing: Java - C++ - PHP

    [supersaibal]"Perchè tanto Debian è meglio"
    [/supersaibal]

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    potresti fare così

    una Hashtable contiene come chiave la stringa del path e come oggetto un array di File
    una Hashtable contiene come chiave il nome host e come oggetto un array di File che corrispondono alle directory

    Hashtable dirs = new Hashtable();
    Hashtable hosts = new Hashtable();
    hosts.put("nome", arrayDir);
    for (int i=0; i<arrayDir.length; i++)
    dirs.put(arrayDir[i].getAbsolutePath(), arrayDir[i].listFiles());

  3. #3
    se hai anche vincoli di velocità, ti consiglierei di utilizzare un oggetto di tipo ArrayList, in cui le operazioni base richiedono un tempo costante.
    Il che mi sembra potrebbe servirti, soprattutto quando vai a ottenere l'elenco delle dir, degli hosts etc etc


    io metterei la console nel main, in modo che sia sempre attiva.
    quindi da console puoi dare i comandi di pubblicazione, revocazione e lista ...
    anche perchè non è richiesto che interpreti i corretti comandi della shell linux
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

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.