Voglio sapere se la creazione di un thread gestito in .Net (chiamando Thread.Start()
) fa sì che esattamente un thread nativo venga creato in background? Quindi c'è un thread nativo corrispondente per un thread gestito? Se sì, quando un thread gestito attende o dorme, significa che anche il thread nativo corrispondente attende o dorme?Ogni thread gestito ha il proprio thread nativo corrispondente?
8
A
risposta
10
Sì, un thread .NET esegue il mapping a un thread del sistema operativo nativo su tutti gli host CLR correnti.
C'è un'opzione per associarlo a qualcos'altro nella API di hosting tramite il ICLRTaskManager interface, come una fibra, ma che non è effettivamente implementato in nessuno degli host dello stream principale. Il team di SQL Server nel time frame .NET 2.0 ha tentato di farlo ma il progetto è stato abbandonato quando non è riuscito a renderlo sufficientemente affidabile. Questo non è stato provato di nuovo. Tecnicamente è possibile imbattersi in un CLR ospitato personalizzato, avviato da un programma non gestito, che ha implementato questa mappatura ma le probabilità sono piuttosto basse.
Problemi correlati
- 1. Ogni thread ha il proprio stack?
- 2. Ogni 'HttpRequest' ottiene il proprio thread in ASP.NET?
- 3. Un thread Java ha il proprio ID di processo?
- 4. Passaggio da ProcessThread a un thread gestito
- 5. Come terminare un thread gestito bloccato nel codice non gestito?
- 6. Impossibile passare al thread gestito in WinDbg
- 7. come rendere ogni thread utilizza il proprio RNG in C++ 11
- 8. Thread Java ogni X secondi
- 9. java.lang.OutOfMemoryError: impossibile creare un nuovo thread nativo
- 10. Ogni core ha il proprio set privato di registri?
- 11. Ogni processo ha il proprio stdin, stdout e stderr?
- 12. Con quale frequenza un thread gestito cambia i thread del sistema operativo?
- 13. Creazione di una libreria C thread-thread
- 14. Il thread NSPersistentStoreCoordinator è sicuro?
- 15. Devo pthread_join ogni thread che creo?
- 16. Dump StackTrace per ogni thread in esecuzione
- 17. Thread verde e thread nativi in java
- 18. Come misurare le prestazioni di un thread gestito in .NET
- 19. In un programma Java multithread, ogni thread ha la propria copia di System.out?
- 20. Sincronizzazione thread contesto oggetto gestito di dati di base
- 21. Thread e Thread Start
- 22. std :: thread - denominazione del thread
- 23. android - chiamata il thread ui dal thread di lavoro
- 24. Will ha ucciso il mutex di processo/rilascio thread?
- 25. Thread come root GC
- 26. Ha molti thread in un'applicazione JVM costosi?
- 27. JDI Thread Evaluations ha riscontrato un problema
- 28. Come dormire il thread in node.js senza influenzare altri thread?
- 29. Verificare se il thread corrente è il thread principale
- 30. Reindirizza lo stdout/stderr nativo della DLL dal wrapper gestito
Perché pensi che sia un thread diverso? –
@BlackFrog: È una domanda legittima. Perché qualcuno dovrebbe preoccuparsi di distinguere tra "thread gestito" e "thread nativo" se i due erano sempre * garantiti * per essere la stessa cosa in primo luogo? Il PO non ha creato questa distinzione; [Microsoft ha fatto] (http://msdn.microsoft.com/en-us/library/74169f59.aspx "articolo MSDN" Threading gestito e non gestito in Windows ""). – stakx