Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa
La seconda generazione della citycar elettrica di Dacia passa alla piattaforma RGEV small di Renault Group, cresce di 15 cm in lunghezza e 18 cm in larghezza, adotta un motore da 80 CV e una batteria LFP da 27,5 kWh per 250 km WLTP. Prezzi da 17.900 euro, produzione a Novo Mesto in Slovenia.
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX ha portato sul mercato Picco, un e-reader da 3,97 pollici che pesa 58 grammi e si aggancia al retro dello smartphone con un anello magnetico. Lo abbiamo usato con Pixel 11 Pro XL e iPhone 18 Pro per capire se un formato così ridotto regga la prova della lettura quotidiana
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-06-2008, 15:16   #1
m.distrutti
Member
 
L'Avatar di m.distrutti
 
Iscritto dal: Sep 2007
Messaggi: 207
[Java]misurazioni di intervalli in millisecondi

per progetto scolastico mi sono ritrovato a realizzare una simulazione di una sfida a rigori tra due squadre di calcio con la concurrency programming in Java

il progetto da me gia ultimato e funzionante va egregiamente con una pecca solo su un punto:

-il monitor Arbitro che gestisce due metodi sincronizzati (Tira per il calciatore e Para per il portiere) dovrebbe controllare due ritardi:

-il calciatore al momento del fischio deve avere un ritardo variabile prima del tiro, se questo ritardo supera i 10ms il tiro viene annullato

-il portiere al momento del fischio prima di buttarsi deve avere un ritardo minimo di 2ms

il ritardo sul calciatore ho pensato di introdurlo con una funzione matematica : (long)(16*Math.random()) che dovrebbe restituirmi un numero compreso tra 0 e 15

con il metodo System.currentTimeMillis() ho notato che mi arrotonda la cifra segnalandomi lo stesso risultato al momento della differenza tra i due momenti(prima del ritardo e dopo): o 0 o 15(0 se il ritardo è compreso tra 0 e piu o meno 7 , e 15 per valori compresi tra 7 e 15) (cercando in internet ho anche scoperto che e' dipendente dal sistema operativo) non consentendomi una misurazione precisa che cerco di effettuare prima di eseguire il ritardo variabile e dopo di questo >_>

in pratica come posso effettuare una misurazione più precisa?cercando in internet ho letto post relativi ad hardware dedicato o addirittura programmazione a basso livello per ovviare a questo problema ma e' ancora cosi?

tra l'altro per il ritardo ho introdotto una sleep pensando che siccome non viene rilasciato il lock sul processo che esegue il metodo sincronizzato(come invece sarebbe accaduto con una wait) sarei stato più preciso nella misurazione, ho aggiunto questa nota per sapere se sbaglio ed eventualmente cosa ihih

vi ringrazio per una eventuale risposta ^_^
Buona giornata a tutti

Ultima modifica di m.distrutti : 08-06-2008 alle 15:23.
m.distrutti è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 15:57   #2
Josualba84
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 7
Ciao!!

Anche io sto facendo il tuo stesso progetto...e come te ho lo stesso problema...oltre a tanti altri...

posso chiederti una cosa??...

...Come hai gestito il portiere??
Josualba84 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 16:23   #3
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Una volta calcolato il ritardo ed effettuata la sleep con lo stesso sei perfettamente allineato con la richiesta..in quanto ai fini della valità del tiro basta effettuare un confronto(tra 2 int senza considerare le unita di misura) tra i 10ms stabiliti e il ritardo randomico introdotto.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 16:35   #4
m.distrutti
Member
 
L'Avatar di m.distrutti
 
Iscritto dal: Sep 2007
Messaggi: 207
Quote:
Originariamente inviato da Josualba84 Guarda i messaggi
Ciao!!

Anche io sto facendo il tuo stesso progetto...e come te ho lo stesso problema...oltre a tanti altri...

posso chiederti una cosa??...

...Come hai gestito il portiere??
scusa il ritardo della risposta

certo non e' stato proprio un metodo elegante ,l'ho tirato giu velocemente dato che non ho molto tempo da dedicarci >_>,

in pratica ho creato due flag

di default i portieri nella mia prima implementazione si buttavano concorrenzialmente nel metodo Para sincrono del monitor e rimanevano in wait affinchè l'arbitro fischiava eseguendo una notifyAll su di essi e dopo aver controllato che la squadra che deve parare sia quella di appartenenza eseguo la parata...

il portiere non deve pero fossilizzarsi su un metodo soltanto perchè dovra waittarsi sia in para che in tira aspettando il fischio dell'arbitro , considera cmq che la squadra iniziale e' casuale percio uno all'inizio si waittera in para e l'altro in tira e si alterneranno

aggiungendo i flag hannoParato e HannoTirato li faccio uscire dal metodo corrente per spostarsi nell'altro

...ora la spiegazione e' un po contorta, se mi lasci il contatto messanger magari per pm ti faccio vedere tutto^_^
m.distrutti è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 18:39   #5
Josualba84
Junior Member
 
Iscritto dal: Jun 2008
Messaggi: 7
Ok...ti ringrazio...ti ho inviato un messaggio privato con il mio contatto...

Grazie!!
Josualba84 è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 20:58   #6
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
System.nanoTime() l'hai già provato?
dovrebbe avere una precisione di circa 1ms su xp se non sbaglio...
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2008, 21:07   #7
m.distrutti
Member
 
L'Avatar di m.distrutti
 
Iscritto dal: Sep 2007
Messaggi: 207
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
System.nanoTime() l'hai già provato?
dovrebbe avere una precisione di circa 1ms su xp se non sbaglio...
sisi alla fine ho guardato quella funzione nell'api e dopo averla provata da una precisazione più dettagliata ^^

grazie mille per le risposte
m.distrutti è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nuova Dacia Spring, del modello precedente resta solo il nome: più grande, più efficiente e ora prodotta in Europa Nuova Dacia Spring, del modello precedente resta...
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone BOOX Picco: l'ebook reader minuscolo è un...
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
SSD e hard disk su AliExpress: 4TB a sol...
Due Mac agli antipodi in forte sconto su...
Quick Spectral Super Resolution (QSSR): ...
AMD Ryzen, prezzi interessanti su AliExp...
Zenbook S è un MacBook Air che co...
Motorola moto g56 5G a soli 233€ su Amaz...
Aerei a terra negli USA? Nessun attacco,...
Amazon, pioggia di offerte sulle bici el...
Intel Core Ultra 7 260K esiste ma non po...
Una lettera promette una rivolta contro ...
SpaceX ha lanciato la missione Flight 15...
NVIDIA cerca il successore di Jensen Hua...
La CNSA annuncia la missione Tianwen-4 v...
Una valanga di wafer e memorie incombe s...
Microsoft 365, miglioramenti dopo il dow...
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: 09:36.


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