Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-11-2008, 14:44   #1
ChriD
Senior Member
 
L'Avatar di ChriD
 
Iscritto dal: Sep 2002
Città: Ischia
Messaggi: 5293
[Java] Thread che parte ad intervalli regolari per svolgere delle operazioni.........

Avrei bisogno di qualche dritta per realizzare un thread che ad intervalli regolari venga eseguito!

Devo gestire una sorta di cache per dei dati che sono memorizzati su un database!

Spiego meglio il problema che devo risolvere!
Ho dei dati indicizzati tramite una chiave memorizzati un un database.... poichè è possibile che più colte vengano richiesti gli stessi dati vorrei memorizzarli all'interno di un HashMap e restituirli direttamente nel caso in cui siano presenti, viceversa li andrei a prelevare dal database, poi li andrei ad inserire nell'HashMap e infine restituirli.....

Cosa succede se però questi sono troppo vecchi o l'HashMap diventa troppo grande?? Per questo motivo ho bisogno di un thread che ad ogni tot di tempo vada ad effettuare dei controlli.....

Quello di cui ho bisogno è non come si scrive un thread, ma come far si che ad intervalli regolari esso venga invocato....

Esiste una qualche classe Interval, o magari qualche metodo setInterval(Thread, millisecondi) per esempio???
__________________
Ryzen 1700X - Asus Crosshair VI X370 - DDR4 16 GB G.Skill Trident 3400 CL16 - NZXT Kraken X62 (Arctic Freezer 7 replacing ) - Samsung SSD 850 EVO 512GB - Corsair AX850 Gold - Phanteks Enthoo EVOLV Temperated Glass - LG 34UC88
ChriD è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2008, 15:40   #2
british
Member
 
L'Avatar di british
 
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
Quote:
Originariamente inviato da ChriD Guarda i messaggi
Avrei bisogno di qualche dritta per realizzare un thread che ad intervalli regolari venga eseguito!
dai un occhio alla classe java.util.Timer

ma sei sicuro che ciò ti serva davvero? non te la potresti cavare effettuando il controllo su dimensione e stato di aggiornamento temporale della tua cache durante l'accesso alla stessa?

ciao!

british
british è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2008, 15:49   #3
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da british Guarda i messaggi
ma sei sicuro che ciò ti serva davvero? non te la potresti cavare effettuando il controllo su dimensione e stato di aggiornamento temporale della tua cache durante l'accesso alla stessa?
Quoto: potresti semplicemente creare una classe che wrappi l'HashMap e contenga il timestamp dei dati caricati nella stessa.
Ogni volta che devi accedere ai dati prima consulti questa cache e se i dati non sono presenti oppure sono più vecchi in un intervallo da te scelto li recuperi ex novo dal db sottostante.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2008, 15:56   #4
ChriD
Senior Member
 
L'Avatar di ChriD
 
Iscritto dal: Sep 2002
Città: Ischia
Messaggi: 5293
Quote:
Originariamente inviato da british Guarda i messaggi
dai un occhio alla classe java.util.Timer

ma sei sicuro che ciò ti serva davvero? non te la potresti cavare effettuando il controllo su dimensione e stato di aggiornamento temporale della tua cache durante l'accesso alla stessa?

ciao!

british
Per quello che riguarda l'aggiornamento temporale potrei farlo sicuramente come dici tu, ossia qualche controllo quando ci accedo nel leggere i dati, ma per quello che riguarda la dimensione, non mi voglio ridurre ad eliminare i dati a casaccio o svuotare del tutto la HashMap, ma fare un controllo sui dati che sono meno richiesti (dal punto di vista del tempo e forse anche degli accessi), ed essendo un server quello che sto realizzando, vorrei lascirlo libero di elaborare altre richieste mentre questa sorta di "garbage collector" lavora!

Grazie della dritta....

Le classi Timer + TimerTask sono quello che cercavo
__________________
Ryzen 1700X - Asus Crosshair VI X370 - DDR4 16 GB G.Skill Trident 3400 CL16 - NZXT Kraken X62 (Arctic Freezer 7 replacing ) - Samsung SSD 850 EVO 512GB - Corsair AX850 Gold - Phanteks Enthoo EVOLV Temperated Glass - LG 34UC88
ChriD è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2008, 15:59   #5
ChriD
Senior Member
 
L'Avatar di ChriD
 
Iscritto dal: Sep 2002
Città: Ischia
Messaggi: 5293
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Quoto: potresti semplicemente creare una classe che wrappi l'HashMap e contenga il timestamp dei dati caricati nella stessa.
Ogni volta che devi accedere ai dati prima consulti questa cache e se i dati non sono presenti oppure sono più vecchi in un intervallo da te scelto li recuperi ex novo dal db sottostante.
I dati da gestire sono tanti e un Timestamp in un wrapper della HashMap credo sarebbe troppo riduttivo.....

I dati posso essere inseriti nella Map in tempi diversi e richiesti con frequenze differenti, quindi devo gestire ciascuna entry come un caso a parte!
__________________
Ryzen 1700X - Asus Crosshair VI X370 - DDR4 16 GB G.Skill Trident 3400 CL16 - NZXT Kraken X62 (Arctic Freezer 7 replacing ) - Samsung SSD 850 EVO 512GB - Corsair AX850 Gold - Phanteks Enthoo EVOLV Temperated Glass - LG 34UC88
ChriD è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2008, 16:03   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da ChriD Guarda i messaggi
I dati posso essere inseriti nella Map in tempi diversi e richiesti con frequenze differenti, quindi devo gestire ciascuna entry come un caso a parte!
Ok, messa così è diverso, avevo immaginato la cosa fosse più semplice.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Ricarica da record: Zeekr supera i 1.300...
Un 'capezzolo' con feedback aptico al po...
Porsche Taycan Rush a Misano: prima al v...
Installare Windows 11 senza account Micr...
Cina, nuove regole per le auto elettrich...
OPPO A6 Pro arriva in Italia a 299,99 eu...
Black Myth: Wukong, oggi un maxi aggiorn...
Nomad in missione senza alcun controllo ...
Apple prepara il chip H3 e nuovi AirPods...
Battlefield 6 è uno spettacolo an...
Hyundai Ioniq 9, prima prova: viaggiare ...
Allarme blackout in Spagna: la rete elet...
MindsEye, rivolta dei dipendenti contro ...
In Cina Xiaomi SU7 Ultra prende fuoco do...
Apple Smart Glass: display integrato e d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:05.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v