Tôi đang cố gắng quấn đầu quanh cách hoạt động của luồng, và tôi tin rằng tôi có thể đã làm quá tải nó.Đang cố gắng quấn quanh đầu của tôi
gốc Hiểu:
Previous Tôi nghĩ chủ đề được giới hạn trong một lớp học duy nhất và các lớp con của nó, không có lớp có thể được chia sẻ qua đề, và các thông tin liên lạc giữa các chủ đề đã làm cho nó thực sự khó khăn cho tôi để hiểu.
Hiểu biết mới:
Nhưng tôi càng đọc về nó, thay vào đó có vẻ như chuỗi chỉ chạy ở một điểm ngẫu nhiên trong cùng một mã. Bạn có thể hạn chế nó đến các khu vực nhất định nhưng trong lý thuyết cùng một mã có thể chạy nhiều lần trong mỗi chủ đề.
Để đặt theo cách khác, nếu bạn thấy mã như một hệ thống đường có lượt và kết nối, đó là luồng mà chương trình có thể thực hiện, luồng chính chỉ chạy qua điều này. Nếu một luồng mới được sinh ra, tất cả những gì bạn làm là nói nó nên bắt đầu từ đâu, và mã đi từ đó, có thể sử dụng cùng một lớp và lệnh, vì vậy nếu bạn cấu trúc mã "xấu" thì có nguy cơ hai đoạn mã " crashing ", nhưng bên cạnh đó không có hạn chế về đọc và viết mã, tất cả các phần của cùng một chương trình, chỉ cần nhiều" xe hơi "trên" đường ".
Bạn có thể giới hạn một chuỗi trong một khu vực nhất định (vòng/giới hạn một phần mã) và chỉ tương tác ở một số địa điểm nhất định hoặc bạn có thể bỏ qua nó và chỉ hy vọng tránh "sự cố".
Với "Hiểu biết mới" làm việc với các chủ đề cho tôi dễ dàng hơn nhiều để quấn quanh đầu, do đó, nó có hiểu đúng không?
Vâng, sự hiểu biết sau này của bạn ít nhiều chính xác! Để mở rộng sự tương tự của bạn, các chức năng và đối tượng đồng bộ hóa chuỗi (ví dụ: 'ManualResetEvent' và' lock') giống như đèn giao thông ngăn chặn những chiếc xe va chạm. :) –
Có một ebook miễn phí tuyệt vời về luồng ở đây: ['Albahari'] (http://www.albahari.com/threading/) –
Cảm ơn bạn đã nhập liệu từ cả hai bạn. Đột nhiên làm cho nó rõ ràng hơn rất nhiều cho tôi để làm việc với và quấn quanh đầu tôi. Vì vậy, đơn giản hơn nhiều ... SO nhiều nguy hiểm hơn nếu làm sai :) – Taoh