Quindi stavo leggendo "CLR via C#" e ho trovato questa riga "Un thread è un concetto di Windows il cui compito è quello di virtualizzare la CPU". Veramente? Era single \ multi thread originariamente da Windows?
Cercare su google per giustificare non ha aiutato e quindi cercare aiuto dalla comunità.Il thread è un concetto di Windows?
risposta
Risposta breve: No, non è solo un concetto di Windows, e il concetto è stato intorno per un periodo piuttosto lungo.
Suppongo che l'autore intendesse davvero che il threading come meccanismo è qualcosa che viene gestito da Windows e non da .NET framework.
Il che è palesemente sbagliato, i thread .NET non si associano ai thread del sistema operativo, possono condividere un singolo thread e persino passare alle fibre più leggere dietro le quinte. Sono davvero una cosa .NET. – Blindy
Non c'è nulla nella documentazione C# che dice che non posso effettuare chiamate di blocco ogni volta che lo desidero. Sembrano e si comportano molto come i fili del sistema operativo per me. Anche il Task Manager sembra pensarlo: se faccio 2000 thread con C#, la TM mostra il mio processo con thread 2001. Sarebbe estremamente scortese per .NET, (o qualsiasi altro framework o ambiente), tentare di fiber/green il mio codice. Non riesco a vedere come potrebbe farlo, TBH. –
Sono d'accordo, per ora, che i thread CLR siano mappati ai thread del sistema operativo, ma la vite dice che questo potrebbe cambiare in futuro (o potrebbe averlo già fatto in 4.5 o 5.0). –
Credo che Amiga avesse già il multithreading. Potrebbe essere che il testo si riferisca al fatto che il multithreading sia (anche) un concetto di Windows ma non che sia (in origine) un'invenzione di Windows?
Direi che quando parliamo di "threading" su Windows c'è una certa ipotesi sulla memoria condivisa e l'implementazione. In realtà non ho mai sentito il termine "thread" fino a quando non sono passato alla programmazione Windows (al contrario della programmazione embedded). Avevo più familiarità con il multiprocessing e il multitasking. Quindi il concetto non era unico ma la terminologia potrebbe essere cambiata. Vorrei sottolineare nella mia esperienza precedente a Windows, molti processi NON condividevano la memoria a meno che non fosse globale.
- 1. Il thread di Windows Win32 è sicuro?
- 2. Qual è il concetto di bubbling?
- 3. Qual è il concetto di un assieme in .NET?
- 4. Il concetto di un "omomorfismo interleaved" è una cosa reale?
- 5. Comprendere il concetto di inode
- 6. RxSwift - Inintestabile un concetto
- 7. Concetto di filettatura in C#
- 8. Qual è il concetto di swimlane in YouTrack?
- 9. Qual è il concetto alla base di R.java?
- 10. Perché il concetto di Marshalling è chiamato così?
- 11. Qual è il concetto alla base di "Handle Pinned GC"?
- 12. Boost, concetto mutex
- 13. Qual è il concetto di istantanea nel dardo?
- 14. Qual è il concetto di "debole conformità" in Scala?
- 15. Qual è il concetto di base dietro WaitHandle?
- 16. Che cosa significa il concetto di trasferimento?
- 17. Che cos'è il concetto di singolo o multi-thread nell'area del file system?
- 18. Qual è il numero massimo di thread che un processo può avere in windows
- 19. qual è la differenza tra pool di thread di Windows e pool di thread CLR
- 20. Chiamata di un Windows Form da un altro thread (Net)
- 21. Drools Fusion ha un concetto di "adesso"?
- 22. Puoi spiegare il concetto Web di RESTful?
- 23. NUnit supporta il concetto di un montaggio Teardown?
- 24. Qual è il concetto alla base della compressione zip?
- 25. Amico, dov'è il mio thread ?? (o: rinominare un thread pool di thread .NET - è possibile?)
- 26. Lo scheduler dei thread di Windows è ingiusto?
- 27. RavenDB è adatto a questo concetto?
- 28. Verificare se il thread corrente è il thread principale
- 29. Verifica se un thread è tornato al pool di thread
- 30. Windows C++ - thread di chiusura con CloseHandle
Penso che il significato del libro sia che i thread sono gestiti dal kernel di Windows e non dal runtime .NET. – MattDavey
Penso che questa domanda appartenga ai programmatori, ma poi, chi sono. Non puoi più votare per passare ai programmatori. –
È un errore facile da capire. Tecnicamente, un thread è un concetto a livello di sistema operativo. L'O/S gestisce i thread. Nel contesto di C#, nella maggior parte dei casi, (Mono non resiste), l'O/S sarà Windows, quindi in questo contect, di solito si tratta di un concetto a livello di Windows. Considerato come una spiegazione generale, non tecnica, di quale thread è, ha senso. Non è tecnicamente preciso, ma il tuo novellino medio non saprà o non si preoccuperà della distinzione. – David