Mono-ThreadPool-Concurrency-Probleme

8

Ich habe eine Software geschrieben, die ThreadPool für Multithreading verwendet.

%Vor%

Innerhalb jedes Threads führe ich blockierende Netzwerkoperationen durch (arbeite mit http). Software, die um das Blockieren des Netzwerkmodells entwickelt wurde, und ich kann nicht zu nicht blockierten 1-Thread-E / A-Geräten wechseln.

Es funktioniert perfekt auf Windows-Plattform, ich kann 128-512 Threads pro Kern ohne Probleme verwenden, alle funktionieren so, wie es funktionieren sollte. Aber als ich zu mono wechselte, sah ich ein seltsames Verhalten. Ich kann nicht machen, dass viele Threads pro CPU-Kern laufen, max kann ich bekommen - 1 Thread pro Kern, egal was ich in SetMinThreads / SetMaxThreads spezifiziere.

habe ich unter Linux mit .NET 4 / 4.5, MONO Version 3.2.1 und einigen älteren Versionen auf meinem alten System versucht. Btw, einfacher Threading-Code funktioniert gut, zum Beispiel ergibt dies das gewünschte Ergebnis:

%Vor%     
sfireman 02.02.2014, 15:55
quelle

2 Antworten

7

Wir haben auch viel mit mono experimentiert und schaut, dass folgende hilft:

  1. Setup-Umgebungsvariable MONO_THREADS_PER_CPU zu höheren Werten. beispielsweise export MONO_THREADS_PER_CPU = 300 (linux). Ich bin mir nicht sicher, aber es sieht so aus, dass man threadpool nicht durch setmin / max threads optimieren kann, ohne dass "more threads per cpu" gesetzt ist.
  2. starte mono mit --server switch, aber es funktioniert ab 3.2.3. Hier erklärt Ссылка , aber vielleicht hilft dieses Flag nur beim Start, wenn nicht genug Threads abgefeuert werden.

Wir verwenden beide Optionen und mono unter Linux ziemlich schnell (vergleichbar mit .net unter Windows)

    
Konstantin Sokharev 01.04.2014 17:43
quelle
-1

Warum benutzt du nicht eine Kombination dieser Sachen (wie: Asyn, MultiThreading, Parallel), wenn Multithreading nicht genug für deine Arbeit ist! Ich denke, dass diese für Sie hilfreich sein können: Ссылка stackoverflow.com/questions/5717059/implementation-of-task-in-monodroid Ссылка

    
Seyed Hamed Shams 02.02.2014 16:35
quelle

Tags und Links