2009-08-13 23 views
5

Rõ ràng chúng ta sẽ vẫn duy trì nó, nhưng sẽ hữu ích như thế nào, một khi tiêu chuẩn C++ đảm bảo.Pthreads sẽ trở nên lỗi thời khi std: thread tạo thành C++ Ox

Điều gì về đồng bộ nguyên thủy (Mutex, biến điều kiện) với sự xuất hiện của tiêu chuẩn mới?

Bạn có coi pthread khó hơn để làm chủ như trái ngược với std :: thread không?

+4

Câu hỏi lạ. Các ngôn ngữ khác (như C) sử dụng pthreads. –

+5

* p * chủ đề là chủ đề POSIX. – AProgrammer

+6

Chỉnh sửa câu hỏi ban đầu của bạn để hỏi một câu hỏi hoàn toàn khác không phải là một ý tưởng hay. –

Trả lời

30

C sẽ không biến mất. POSIX không biến mất. Mã đa luồng được viết bằng C cho POSIX sẽ không biến mất. Vì vậy, pthreads không biến mất.

Nhiều triển khai std :: thread sẽ sử dụng pthreads dưới mui xe.

"API Pthreads được định nghĩa trong tiêu chuẩn ANSI/IEEE POSIX 1003.1 - 1995". - Lập trình Chủ đề POSIX https://computing.llnl.gov/tutorials/pthreads/

+1

cũng sẽ dễ dàng hơn để phát triển nền tảng chéo sử dụng thư viện cụ thể theo tiêu chuẩn so với nền tảng sử dụng ... – vehomzzz

+1

Mọi người vẫn sẽ lập trình bằng C và C++ 0x sẽ không giúp họ. – nos

+2

Tôi KHÔNG nói về C ... Tôi đang nói về C++ – vehomzzz

0

Bất kể so sánh kỹ thuật nào, phải mất một phần tốt nhất của một thập kỷ để nhận được ngay cả hợp lý hỗ trợ C++ 98 từ tất cả các nền tảng/nhà cung cấp chính. Điều này một mình đảm bảo pthreads sẽ được mạnh mẽ vào năm 2020.

+0

Hầu hết công việc thực hiện thư viện luồng đã được thực hiện bằng cách tăng cường - và chúng có một thư viện mô phỏng TR1 đã sẵn sàng cho các trình biên dịch với sự hỗ trợ không đầy đủ. Nó sẽ không được lâu cho đến khi hỗ trợ cho các tính năng thư viện có sẵn trên tất cả các trình biên dịch chính, alebit có thể yêu cầu một thư viện bên ngoài như thế. – bdonlan

+2

G ++ đã triển khai thư viện chủ đề, trên thực tế: http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00568.html – bdonlan

+1

Việc hỗ trợ trong Boost sẽ không giúp ích, ví dụ: Microsoft bổ sung hỗ trợ để trình biên dịch của họ. Mặc dù họ có thể, tôi không thấy chúng bằng cách sử dụng mã tăng cường. Tôi thấy trước một khoảng thời gian có thể 5 năm cho đến khi tất cả các trình biên dịch có (chủ yếu) hoàn thành hỗ trợ chủ đề C++ 0x, bao gồm cả việc học ngữ nghĩa cho tất cả các trường hợp góc. Điều này cũng có thể bao gồm các sửa đổi đối với tiêu chuẩn, trong đó mọi thứ không được chỉ định đầy đủ và chưa có ai nhận thấy. – KeithB

9

C++ triển khai trên nền tảng hỗ trợ pthreads có thể sẽ thực hiện các tính năng ngôn ngữ về pthreads - vì vậy không, nó sẽ không bị lỗi thời.

10

POSIX là một tiêu chuẩn của hệ điều hành. C++ 0X là một tiêu chuẩn ngôn ngữ. Có chủ đề trong lần thứ hai sẽ không lỗi thời đầu tiên. Có một sự hợp tác giữa hai để thứ hai là có thể thực hiện trên đầu tiên. (Và cũng có quá trình làm việc để có giao diện C++ cho POSIX).

0

Có thể cho mã mới, sử dụng những gì có trong tiêu chuẩn sẽ là đúng cách để đi. Chúng ta sẽ phải chờ đợi và xem việc triển khai thực hiện vững chắc trong các trình biên dịch chính là như thế nào. Nhưng sẽ không có nhiều lợi ích khi chuyển đổi mã hiện có từ pthreads, giả sử nó đang hoạt động ngay bây giờ. Điều này bao gồm mã mới được viết trong một cửa hàng đã có rất nhiều kinh nghiệm với pthreads.

3

std :: thread không bao gồm hỗ trợ cho các mức độ ưu tiên, kiểm soát kích thước của ngăn xếp luồng, kiểm soát chính sách lập lịch hoặc kiểm soát mối quan hệ của bộ vi xử lý.

Lớp lên lịch và ưu tiên là rất quan trọng đối với các hệ thống thời gian thực. Mối quan hệ bộ xử lý và kích thước ngăn xếp thực sự quan trọng đối với các hệ thống hiệu suất cao. Các ứng dụng như vậy sẽ tiếp tục sử dụng các tiện ích luồng gốc, có thể ngoài std :: thread, có thể thay vì std :: thread, có thể thông qua các phần mở rộng của nhà cung cấp để trưng ra các tính năng cần thiết cùng với std :: thread.

+0

Bạn nói đúng. Tôi đặt cược vào [colaboration] (http://en.cppreference.com/w/cpp/thread/thread/native_handle). – vinipsmaker

0

Ít nhất đúng cho tăng chủ đề:

  • Nó không hỗ trợ tham số ngăn xếp kích thước
  • Nó không hỗ trợ setpshared thuộc tính

Vì vậy, không ... Có một số điều cần làm trước khi API OS có thể được coi là lỗi thời. (và các chủ đề BTW được triển khai trên các phần mềm pthreads)

Các vấn đề liên quan