W procesie systemu Windows istnieje ograniczenie dotyczące używanych wątków naraz. Jeśli tak, to jaka jest maksymalna liczba wątków, które mogą być używane w jednym procesie?Jaka jest maksymalna liczba wątków, które proces może mieć w systemie Windows
Odpowiedz
Nie ma ograniczeń, które znam, ale są dwa praktyczne ograniczenia:
- przestrzeni wirtualnej na stosach. Na przykład w 32-bitowej przestrzeni wirtualnej procesu wynosi 4 GB, ale tylko około 2G są dostępne do ogólnego użytku. Domyślnie każdy wątek zarezerwuje 1 MB miejsca na stos, więc najwyższą wartością jest 2000 wątków. Oczywiście można zmienić rozmiar stosu i zmniejszyć go, aby zmieściło się więcej wątków (parametr
dwStackSize
wCreateThread
lub opcja/STACK
w komendzie linker). Jeśli używasz systemu 64-bitowego, ten limit praktycznie znika. - Narzut menedżera. Po przeczytaniu tysięcy wątków, zaplanowanie ich zajmie prawie 100% czasu procesora, więc i tak są one w większości bezużyteczne. To nie jest twardy limit, tylko twój program będzie wolniejszy i wolniejszy, im więcej wątków utworzysz.
Cóż, zależy od stanu gwintu. 6000 zablokowanych wątków ma zerowy wpływ na działanie mojej maszyny. Ponadto, nie widzę, jak, nawet jeśli nici byłyby gotowe/działające, to miałoby duże znaczenie, gdybym miał 16 wątków lub 1600 - moje rdzenie 4/8 byłyby w obu przypadkach wyczerpane. –
@MartinJames: Ponieważ algorytmy używane przez program planujący jądra decydują, co uruchomić kolejną skalę z rozmiarem tabeli wątków. Bez wątpienia szczegóły różnią się w zależności od wersji systemu Windows, ale pamiętam, że tworzenie 2000 wątków w WinXP odbywało się w trybie 'for (;;) Sleep (1000)', a użycie procesora przekroczyło 80%. – rodrigo
IIRC, struktura wątków readdt jest po prostu uporządkowaną według priorytetów tablicą kolejek wskaźników bloku informacji o wątkach. Jeśli jedna kolejka ma 2000 wpisów, ale są tylko cztery rdzenie, poruszanie się po wątkach w przerwie zegarowej wymaga jedynie popchnięcia "starych" czterech nitek z tyłu i wyskoczenia czterech "nowych" z przodu - nie ma znaczenia jak długo jest kolejka. To nie potrwa długo? –
Rzeczywiste ograniczenie zależy od ilości dostępnej pamięci na różne sposoby. Nie ma limitu "nie można mieć więcej niż te wiele" wątków lub procesów w systemie Windows, ale istnieją ograniczenia co do ilości pamięci, z której można korzystać w systemie, a kiedy to się skończy, nie można tworzyć więcej wątki.
Zobacz ten blog przez Mark Russinovichem: http://blogs.technet.com/b/markrussinovich/archive/2009/07/08/3261309.aspx
- 1. Maksymalna liczba wątków ThreadPool
- 2. Jaka jest maksymalna liczba członków, jaką klasa może mieć w C++
- 3. Jaka jest maksymalna liczba plików na słoik?
- 4. Maksymalna liczba wątków, które można zainicjować w jednym jądrze CUDA.
- 5. Jaka jest maksymalna liczba wątków robota swingowego, które mogą być uruchamiane?
- 6. Jaka jest maksymalna liczba ponumerowanych wyrażeń regularnych?
- 7. Jaka jest maksymalna liczba wierszy, które może przechowywać pojedyncza tabela programu SQL Server?
- 8. . Maksymalna liczba równoczesnych wątków z timerem
- 9. Jaka jest maksymalna liczba argumentów w funkcji Pythona?
- 10. Jaka jest maksymalna liczba bloków możliwa w CUDA?
- 11. Jaka jest maksymalna liczba kluczowych obszarów w Cassandrze?
- 12. Jaka jest maksymalna liczba znaków w wiadomości USSD?
- 13. W kursie wymiany walut jaka jest maksymalna liczba miejsc dziesiętnych?
- 14. Jaka jest maksymalna liczba kolumn dozwolona w tabeli?
- 15. Maksymalna liczba połączeń w ChannelFactory
- 16. jaka jest różnica między pulą wątków systemu Windows i pulą wątków CLR
- 17. Jaka jest maksymalna liczba połączeń cURL ustawionych przez?
- 18. Jenkins - maksymalna liczba równoczesnych zadań
- 19. Maksymalna liczba obiektów w obszarze roboczym
- 20. Funkcje PHP - Maksymalna liczba argumentów
- 21. Jaka jest maksymalna dozwolona ścieżka pliku w systemie Android?
- 22. maksymalna wartość SO_RCVBUF w systemie Windows?
- 23. Maksymalna liczba równoczesnych HttpWebRequests
- 24. Ile kolumn możesz mieć (maksymalna) w tabeli MySQL?
- 25. Maksymalna liczba adnotacji (MKAnnotation), które można narysować w MKMapView?
- 26. maksymalna liczba kostek domina może być umieszczona wewnątrz figury
- 27. Maksymalna liczba prób wysłania
- 28. Maksymalna liczba argumentów Bash! = Maksymalna liczba argumentów cp?
- 29. Jaka jest maksymalna liczba plików, które można przechowywać w jednym folderze, na systemach plików Win7/Mac OS X/Ubuntu?
- 30. Jaka jest maksymalna liczba plików do wyboru w danych wejściowych HTML5 [wielu]?
próbowałeś https://www.google.de/#q=What+is+the+maximum+number+of+threads+a+process+ Czy + można już mieć + w systemie Windows? –
Przetestowałem to. Moja 64-bitowa wersja Vista nie chce stworzyć więcej niż ~ 7000 wątków, nie potrafi zapamiętać dokładnej liczby. –