Uderzasz w twardy limit. Jak inni twierdzą mogą być dwa ograniczenia:
- liczba wątków proces można mnożyć jest ograniczona przez system operacyjny (albo globalnie, albo na proces)
- pamięć jest dostępna ograniczona, każda nitka zachowuje swoje własne stos (zwykle kilka MB i 4 MB * 900 -> 3,6 Go)
Nawiasem mówiąc, to właśnie jest tak interesujące w procedurach Google Go. Zamiast tworzyć jak najwięcej wątków, środowisko wykonawcze Go dostosuje liczbę wątków do liczby dostępnych rdzeni i ręcznie zmultiplikuje procedury na tych fizycznych wątkach.
Co więcej, procedury są lekkie (zachowują tylko 4 KB), ponieważ nie używają tradycyjnego stosu (zniknięcie przepełnienia stosu!), Co oznacza, że można skutecznie rozprowadzić kilka tysięcy procedur na typowej maszynie i to nie będzie cię wiele kosztowało.
Jeśli chcesz eksperymentować z ekstremalnej równoległości:
- znaleźć sposób, aby zmniejszyć przestrzeń stosu przydzieloną za gwintu (strzeż przepełnienie stosu)
- przełącznik Go, albo znaleźć inny język rutyny
realizacji
Prawdopodobnie istnieje ograniczenie systemu operacyjnego. Sprawdź w instrukcji obsługi swojego systemu. –
Po prostu nie interesuje nas, do czego służą te wątki? –
@Mark: wygląda jak instancja Jadło Philosophy z 900 wątków. –