Tôi chưa đọc sách, nhưng nếu bạn không rõ ràng về đồng thời, thì điều đầu tiên cần làm là đọc, sử dụng và hiểu một hệ thống đa luồng.
Sau đó thực hiện tương tự cho một hệ thống khác và lưu ý cẩn thận về sự khác biệt so với hệ thống bạn đã biết. Khi bạn phát hiện ra sự khác biệt, hãy bắt đầu đọc xung quanh để xem có bao nhiêu hệ thống khác nhau xử lý khía cạnh đồng thời đó.
Nếu bạn hiện đang làm việc trên một chương trình đa luồng, hệ thống đầu tiên bạn nghiên cứu phải là hệ thống bạn đang làm việc chủ yếu, bởi vì cho đến khi bạn hiểu mô hình đồng thời của hệ thống,/hoặc lập trình bằng cách sao chép và dán mã hiện có. Vì vậy, đó có thể là Windows, pthreads, Boost, TBB, hoặc cái gì khác mà đã tồn tại. Tuy nhiên, C++ 11 có thể là một ứng cử viên mạnh mẽ cho hệ thống thứ hai.
Nếu không, tôi không nghĩ rằng nó tạo ra quá nhiều sự khác biệt mà bạn học trước tiên. OK C++ 11 có những bất lợi nhỏ mà nó không tồn tại ngoại trừ một PDF - bạn sẽ phải cài đặt một số phiên bản trình biên dịch vẫn đang phát triển nhanh, và có thể sử dụng các luồng Boost thay vì std::thread
trong thời gian này, và có thể một số ví dụ mã trong cuốn sách sẽ không biên dịch và bạn sẽ phải giải quyết các tính năng còn thiếu. Vì vậy, không thử các thí nghiệm từ cuốn sách ở nơi làm việc của bạn trên mã sản xuất (ý tôi là, bạn sẽ không sao, đúng không?).
Thành thật mà nói, đừng bận tâm đến C++, việc học mô hình đồng thời Java vẫn có thể là một khởi đầu hợp lý trên con đường hướng tới sự hiểu biết đồng thời. Hoặc Go: có một số tóm tắt rất hay, sẽ mất tất cả nửa ngày để có được ý chính của nó, và nó sẽ chỉ cho bạn cách bạn nên muốn chương trình đồng thời hoạt động, giả sử không có biến chứng xấu nào buộc bạn phải làm khác . Chắc chắn, bạn sẽ không sử dụng tất cả kiến thức đó từ Java, Go hoặc C++ 11 ngay lập tức trong công việc C++ chuyên nghiệp của bạn, nhưng nó vẫn có giá trị.
Đó là một cuốn sách phù hợp, hiển nhiên. Và không: đọc về C++ 11 không lãng phí thời gian. Nếu văn phòng của bạn không thông qua C++ 11 trong vòng một năm, ở đó sẽ là một sự lãng phí thời gian của bạn (theo ý kiến khiêm tốn của tôi) – sehe
@ bạn có thể là đúng. Thật không may cho tôi, tôi đang ở Tây Ban Nha. Không có nhiều nơi khác để đi nhưng ở nước ngoài. –
@sehe: điều đó phụ thuộc vào rất nhiều thứ.Nếu bạn muốn tái cấu trúc cơ sở mã của mình với nhiều tính năng ngôn ngữ mới thú vị, tất nhiên bạn nên có lịch biểu để chuyển sang C++ 11 (mặc dù tôi nghi ngờ nó sẽ được triển khai trong vòng một năm, vì vậy nó cũng phụ thuộc vào cảm nhận của bạn về lập trình cho một mục tiêu di động). Một số sản phẩm yêu cầu một chuỗi công cụ ổn định, mặc dù, đến mức không dùng các bản cập nhật không sửa lỗi, trừ khi cần thiết. –