Trong trường hợp Linux, đối với các hàm thời gian, chúng ta có một phiên bản _r Ex: localtime có localtime_r, nhưng trong Windows tôi không thể tìm thấy một số chức năng như vậy. Các chức năng thời gian của Windows vốn có an toàn không?Chức năng thời gian của thread an toàn MSVC?
Trả lời
Với Microsoft Visual Studio bạn có một sự lựa chọn của c-runtimes sử dụng: thường họ là:
- tĩnh thư viện luồng duy nhất (libc)
- thư viện đa luồng tĩnh (libcmt)
- động thư viện đa luồng (msvcrt)
Thư viện đa luồng là chuỗi an toàn. Thư viện đơn luồng được nhìn thấy lần cuối trong MSVC 2005 và đã bị loại bỏ khỏi MSVC 2008.
Thời gian chạy dll (msvcrt.dll) chỉ phải là luồng an toàn - Do thực hiện trong dll và do đó được chia sẻ giữa nhiều các mô-đun trong quá trình này, tất cả đều có thể sử dụng các chuỗi công việc, Nó phải là luồng an toàn vì sẽ không có cách nào lành mạnh để thiết kế một ứng dụng để sử dụng nó theo cách khác.
Tôi nghĩ rằng chúng không phải là ThreadSafe và không có phiên bản _r. Nhưng sửa tôi nếu tôi sai.
Có lẽ sẽ tốt hơn nếu bạn sử dụng các chức năng của Windows riêng, như
Tôi nghĩ rằng Windows localtime_s là chủ đề an toàn: http://msdn.microsoft.com/en-us/library/a442x3ye(VS.80).aspx - ít nhất là khi sử dụng MS CRT
Trên các cửa sổ, các hàm không phải là _r là luồng an toàn vì chúng sử dụng bộ nhớ cục bộ cho bộ đệm. Xem ví dụ http://msdn.microsoft.com/en-us/library/bf12f0hc(VS.80).aspx
- 1. an toàn thread unordered_map
- 2. ActiveScaffold thread-an toàn
- 3. MSVC errno an toàn chủ đề
- 4. strtok chức năng an toàn chủ đề
- 5. TODOConnection của thread có an toàn không?
- 6. .NET - Thread thread Queue.Enqueue có an toàn không?
- 7. Có phải là an toàn thread inet_aton của Perl không?
- 8. Chức năng so sánh chuỗi an toàn
- 9. serialization đối tượng java - thread an toàn?
- 10. các lớp chức năng __attribute __ ((constructor) an toàn
- 11. Trong WPF là thread thread dispatcher.begininvoke chủ đề an toàn?
- 12. iBatis SqlMapClient và an toàn thread
- 13. Chức năng thành viên tĩnh và an toàn luồng
- 14. Có an toàn khi tắt cảnh báo MSVC C4482 không?
- 15. Là C# '??' thread điều hành an toàn?
- 16. C++ 0x khởi tạo tĩnh và an toàn thread
- 17. Chức năng Php PDO an toàn như thế nào: lastInsertId?
- 18. Có an toàn để sử dụng các chức năng chủ đề 'Không an toàn' không?
- 19. PHP - Chức năng "bao gồm" có an toàn không?
- 20. malloc() là không reentrant nhưng thread-an toàn?
- 21. Các chức năng thành viên tĩnh và an toàn luồng
- 22. Chức năng fopen() có an toàn trong Linux không?
- 23. Chức năng bỏ qua nếu mất quá nhiều thời gian
- 24. Có an toàn cho init thread an toàn với VC2010 không?
- 25. Visual C++ thread an toàn miễn phí và malloc?
- 26. Trình điều khiển có tăng cường an toàn cho thread?
- 27. "Inlining" (loại) chức năng tại thời gian chạy trong C
- 28. An toàn của log4net
- 29. Làm thế nào an toàn thread là enum trong java?
- 30. Chuẩn C mktime thread có an toàn trên Linux không?
* sửa tôi nếu tôi sai * - bạn đã sai. xem câu trả lời khác – vaxquis