Frage

Ich bin mit pthreads-win32 Unterstützung zu ermöglichen, für Fenster Threading.

Ich habe ein Cross-Plattform-Projekt, dass Anwendungen pThreads und ich mag es auf Fenster mit verschiedenen Compilern und verschiedenen OS-Versionen funktionieren.

Zumindest nach der Dokumentation pthreads-win32 sollte mit MSVC arbeiten und sogar MSVC Builds zur Verfügung gestellt.

Aber ich weiß nicht, ob die Bibliothek mit dem neuesten MSVC Compiler wie MSVC-2008 getestet und wenn es unter 64-Bit-Windows unterstützt wird.

Ihre eigene Erfahrung sind Sie über alle Probleme mit dieser Bibliothek?

  • Probleme mit MSVC8, MSVC9, MSVC10?
  • Probleme mit Windows-x86_64?
  • Probleme mit Windows Vista / Windows 7?

Weitere Informationen:

  • Versuchen Sie nicht einmal mit Boost.Thread zu empfehlen, ich bin nicht interessiert. Und ich bin vertraut mit Boost.Thread Bibliothek
  • Ich bin neu zu erfinden das Rad mit Win32-API nicht interessiert (die RW-Locks, Bedingte Variablen fehlt, etc).
  • Ich habe es geschafft, ein Vorhaben mit MSVC 2008 und MinGW GCC-4.3 und führen Sie Unit-Tests auf sie leicht zu erstellen, unter Verwendung aktueller vorkompilierte DLL von pthreads.

Ich brauche nur Einschränkungen von pthreads-win32 kennen.

War es hilfreich?

Lösung

Nun, paxdiablo hat es offenbar hier zusammengefasst. Aber aus meiner Erfahrung mit dieser Bibliothek kann ich hier ein paar Dinge hinzufügen.

Zum einen habe ich eine Teilmenge der die Funktionen der Bibliothek mit MSVC 2008 ohne Probleme auch immer benutzt hatte.

Zweitens haben einige meiner Kollegen haben es auf der x86_64 gehen (mit MSVC2008 und MinGW). Sie haben keine Frage entweder nach manchen Zyklen von Beta- und QA-Tests konfrontiert. Obwohl ich es nicht getestet, so kann ich nicht sehr sicher auf diesen sein.

So von den Blicken der Dinge, könnte es fit für den Einsatz sein. Der einzige Nachteil hier ist, dass, wenn Sie irgendeine Frage finden Sie auf Gedeih und Verderb einem nicht so aktiv Mailingliste sein wird (oder vielleicht können Sie Ihre Hände schmutzig mit dem Quellcode oder so etwas bekommen wollen).

Andere Tipps

Kann nicht mit Sicherheit sagen, und dies kann nicht sein, was Sie hören wollen, aber wenn man bedenkt, dass die letzte Version datiert ist 2006 , würde ich sehr vorsichtig sein, dies in dem neuesten Compiler verwenden. Es können Arbeit, aber es ist wahrscheinlich für Sie sein würde bis zu bekommen es geht. Es scheint eine Menge Diskussionen um darüber immer arbeiten in Cygwin und MinGW aber reichlich wenig für MSVC und nichts Ich kann über MSVC2005 finden.

Auch wenn Sie die CVS-Archive untersuchen, gibt es sehr wenige Dateien, die im letzten Jahr aktualisiert wurde (die meisten sind zwei bis fünf Jahre vor). Das Paar, das datiert sind weniger als vor einem Jahr die Beschreibung „Kommentare und Code-Stil ändert“ Das führt mich nichts von dem Fleisch des Produkts zu glauben, hat eine Zeit lang im Rahmen einer aktiven Entwicklung.

Nun, vielleicht bin ich falsch und das ist nur ein unglaublich gut geschrieben, stabiles Produkt, aber meine innere Natur ist eher eine der bazillions gute Ideen, es ist zu dem Schluss, dass auf der Strecke gegangen ist.

Und einen Blick auf den Mailing-Listen, die gibt es nur sieben Meldungen in den ersten fünf Monaten des Jahres 2010 veröffentlicht (die frühesten von denen vier Monaten unbeantwortet gewesen ist) und nur 59 für die ganze Jahr 2009. Farbe mich skeptisch aber das scheint nicht wie eine massiv pulsierenden Support-Community.

Es scheint ein Patch für 64-Bit-Windows (siehe hier in der zu sein 2010 Archive), aber auch hier scheint diese Probleme zu haben, die seit Februar unbeantwortet sind und erwähnt nur Unterstützung für MinGW:

... dieser Patch (ein wenig rau und müssen einig Endreinigung und eine Verlängerung des Probelaufes Make-Datei zu ermöglichen, CROSS hier) ermöglicht Pthread Build für das x86_64-pc-mingw32 Ziel zu sein.

Dies ist nicht das, was würde ich für meine missionskritische Software werden.

Und ich weiß, Sie sagen, dass Sie nicht daran interessiert sind, neu zu erfinden das Rad, aber Sie können von der basischen Primitiven ganz einfach Multi-Leser Schlösser und Bedingungsvariablen implementieren - ich hatte sogar ein Mehr Leser Schema, das die gelöst Schreibhungerproblem in einer Weise, die mich fast ein Patent bekam (nicht, dass ich mit Software-Patenten zustimmen, aber mein Arbeitgeber besteht darauf, sie sind wertvoll).

Und wenn das einzige Rad Sie hat die Hälfte seiner Speichen fehlt und schrecklich ist gebogen aus der Form, können Sie nur überdenken müssen: -)

Auf jeden Fall, Vista und Server2k8 eingeführt beide Bedingungsvariablen und slim-Leser / Schreiber-Sperren . Thread-Local Storage da schon hat Win2k. Ich weiß, das wird nicht helfen, wenn Sie noch XP unterstützen müssen, aber ich würde in die Zukunft schauen.

Und da Sie scheinen definiert Portabilität zu haben, als „Windows-only“ und alle Funktionen, die Sie wollen, sind in den aktuellen Versionen, ich bin nicht sicher, sehe ich einen Vorteil mit pthreads zu kleben. Wenn Sie Portabilität POSIX wollte, ja, aber das scheint nicht hier der Fall zu sein.

überrascht, dass niemand hat Intel Thema Building Blocks vorgeschlagen. Sie sind sehr aktiv und praktisch alles unterstützen, mit der neuesten Version weniger als zwei Wochen, und C ++ 0x verfügt, wenn Sie einen kompatible Compiler verwenden.

http://software.intel.com/en-us/ intel-TBB / # SYSREQ

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top