2010-02-17 6 views
11

Im Fall von Linux haben wir für Zeitfunktionen eine _r-Version Ex: localtime hat localtime_r, aber in Windows kann ich einige solcher Funktionen nicht finden. Sind die Windows-Zeitfunktionen inhärent threadsicher?Sind die Zeitfunktionen von MSVC threadsicher?

Antwort

12

Mit Microsoft Visual Studio haben Sie die Wahl von c-Runtimes zu verwenden: in der Regel waren sie:

  • statische Single-Threaded-Bibliothek (libc)
  • Static multithreaded Bibliothek (LIBCMT)
  • dynamische Multithread-Bibliothek (msvcrt)

Die Multithread-Bibliotheken sind threadsicher. Die Singlethread-Bibliothek wurde zuletzt in MSVC 2005 gesehen und wurde von MSVC 2008 gelöscht.

Die DLL-Laufzeit (msvcrt.dll) muss nur threadsicher sein - Da die Implementierung in einer DLL ist und daher von mehreren anderen geteilt wird Module in dem Prozess, die alle Worker-Threads verwenden könnten, Es muss threadsicher sein, da es keine vernünftige Möglichkeit gibt, eine Anwendung zu entwerfen, um es andernfalls zu verwenden.

-2

Ich denke, dass sie nicht ThreadSafe sind und es gibt keine _r-Version. Aber korrigiere mich, wenn ich falsch liege.

Vielleicht ist es besser, wenn man die eigenen Windows-Funktionen verwenden, wie

GetSystemTime, GetSystemTimeAsFileTime oder GetLocalTime

+0

* korrigieren Sie mich, wenn ich falsch liege * - du liegst falsch. Siehe andere Antworten – vaxquis

Verwandte Themen