Dire, se ho un ID thread, posso essere certo che sarà unico (per quanto tempo il thread è in esecuzione) per processo o in tutto il sistema operativo (tra tutti gli utenti registrati)?Gli ID filo sono univoci per processo o per computer?
risposta
Sì, ID thread di e ID di processo di Windows sono assegnati dallo stesso pool, in modo che sarà unica. Tuttavia, una volta terminata la discussione o il processo, l'ID potrebbe essere riutilizzato da un'altra discussione o processo.
Sì, grazie. So che le Immunodeficienze Primitive sono uniche. Non ero sicuro degli ID di thread. – c00000fd
Puoi espandere la tua risposta per spiegare con quale frequenza gli ID di thread o ID processo vengono riciclati? –
@ChristopherOezbek Non appena l'oggetto kernel viene chiuso, è possibile riutilizzare l'ID. Quindi il seguente è del tutto possibile: 'hThread1 = CreateThread (... &tid1); CloseHandle (hThread1); hThread2 = CreateThread (... &tid2); // tid1 == tid2, anche hThread1 == hThread2' Anche se ora fanno riferimento a un diverso kernel Oggetto: – parrowdice
Un thread è rappresentato da un oggetto kernel ad es. sulla piattaforma Windows. Quindi il suo ID sarà unico in tutti i processi attraverso tutte le sessioni di accesso. Tuttavia, gli ID dei thread possono essere riciclati dopo la chiusura dell'oggetto thread kernel.
GetCurrentThreadId anche dice con chiarezza l'ID univoco durante l'esecuzione.
Grazie per evitare il riciclaggio degli ID thread (se thread e il relativo handle possono essere chiusi mentre viene eseguito il tracciamento dell'ID thread), è possibile accoppiarlo con la creazione thread FILETIME, che può essere ottenuta con API GetThreadTimes(). – c00000fd
@ user843732 : Fatto nel modo giusto, sì è possibile. Utilizzo questa tecnica per verificare se il PID padre di un processo indica che è un processo padre rispetto a un processo che ha riciclato il PID del genitore. – parrowdice
@parrowdice: una domanda successiva, ragazzi. Il tempo 'FILETIME' restituito dall'API GetThreadTimes() non ha alcun" jitter "correlato al timer, vero? I documenti affermano che il valore della creazione del thread è espresso in" 100 nanosecondi " unità di misura "che è una precisione terribile! Non farà in modo che il timer interno inizi ad arrotondarlo per chiamate diverse a quella API, vero? – c00000fd
- 1. Gli ID filo e processo sono univoci?
- 2. Gli oggetti statici sono univoci per utente?
- 3. Gli ID di processo non sono negativi in Linux?
- 4. per ID processo anziché nome?
- 5. Come posso creare ID univoci per documenti incorporati in MongoDB?
- 6. Come dovrei generare ID univoci per un gruppo di oggetti?
- 7. ID univoci con mongodb
- 8. Gli ID MongoDB sono ipotizzabili?
- 9. ID specifico del computer?
- 10. Trovare un processo ID per nome
- 11. Trova ID processo per handle della finestra
- 12. Differenza tra valori in righe consecutive per ID univoci
- 13. ID univoci in knockout.js modelli
- 14. Riga R significa su più colonne per gruppi (o ID univoci)
- 15. Ottieni hwnd per id processo C++
- 16. Relazione tra ID thread e ID processo
- 17. Contenitore o algoritmo più veloce per ID riutilizzabili univoci in C++
- 18. È il codice per i computer o per le persone?
- 19. Gli indici univoci sono migliori per le prestazioni della ricerca di colonne? (PGSQL e MySQL)
- 20. WaitForExit per un processo su un computer remoto
- 21. Come trovare un id filo in Python
- 22. Regole Firebase Sicurezza: .indexOn ID univoci
- 23. Gli ID di Lokijs sono unici?
- 24. Confrontando oggetto o solo gli ID
- 25. Come arrivare filo Id in C#
- 26. filo mappa sicuro per java
- 27. Metodo alternativo per uccidere filo
- 28. Identificatori univoci per iOS MDM
- 29. Gli array SystemVerilog sono passati per valore o riferimento?
- 30. StoreKit per restituire tutti gli ID prodotto
Una volta verificato che un thread può essere eseguito su diversi core/processori durante la sua durata e che l'ID rimarrà costante durante quel periodo, è possibile dedurre la risposta da soli ;-) –