Tại sao các chủ đề được gọi là chủ đề?


9

Tôi hiểu rằng một quy trình một đơn vị sở hữu tài nguyên và các hướng dẫn thực thi. Các luồng cho phép một quá trình chia sẻ tài nguyên của nó với nhiều lần thực thi và hệ điều hành dễ dàng hơn để lên lịch cho các luồng vì tất cả các chi phí liên quan đến toàn bộ các quy trình.

Nhưng tại sao chủ đề tên ? Nó có một số tham chiếu đến chuỗi hoặc xen kẽ của thực thi? Mặc dù vậy, đây không phải là một thuật ngữ trực quan theo ý kiến ​​của tôi.

Câu trả lời:


11

Bạn đã tìm trong một từ điển? Các chủ đề từ có một ý nghĩa quá khứ may.

3: một cái gì đó liên tục hoặc rút ra: như

a: một dòng lý luận hoặc đào tạo ý nghĩ kết nối các phần trong một chuỗi (như ý tưởng hoặc sự kiện)

http://www.merriam-webster.com/dipedia/thread


Hấp dẫn. Tôi đã thực hiện tìm kiếm "xác định chủ đề" nhưng định nghĩa đó không phải là một trong số đó. Tôi rất vui vì bạn đã đề cập đến điều này, bởi vì nó đủ trừu tượng để vượt qua cầu nối từ việc sử dụng chung đến lập trình.
Matt

9

Đã bao giờ nhìn thấy làm thế nào nhiều chủ đề, xoắn, tạo thành một sợi dây dày hơn, mạnh mẽ hơn?

Đó là phép ẩn dụ, mọi luồng đều độc lập nhưng tất cả các luồng cùng hợp tác với một đầu ra tính toán cuối cùng. Bên cạnh đó, như trong sợi dệt, một sợi có thể bị đứt mà không ảnh hưởng đến cấu trúc của toàn bộ dây.

nhập mô tả hình ảnh ở đây


2
trong khi tôi luôn hình dung ra "chủ đề" chỉ có bạn và GrandmasterB mô tả về chúng, không chắc chắn về toàn bộ "dây xoắn, dày hơn, mạnh hơn". Thay vào đó, hầu hết các luồng trong hệ điều hành trông giống như thế này: miqel.com/bonnaroo_2008_music/yarn_opes_trips.jpg (anh chàng bên phải sẽ là bộ điều khiển bộ nhớ) Vâng, đôi khi một vài trong số các chuỗi đó nhằm giải quyết một vấn đề chung, nhưng hầu hết là chỉ cần ở đó và hệ điều hành chỉ cho phép tất cả họ làm bất cứ điều gì họ muốn (trong lý do)
DXM

7

tl; dr: Chúng được gọi là chủ đề vì "chủ đề" là một phép ẩn dụ apt.


Khi bạn bắt đầu một luồng, bạn dựa vào hệ điều hành để phân bổ thời gian xử lý để luồng của bạn có thể thực thi. Trong khi luồng của bạn đang thực thi, bộ xử lý (hoặc lõi) sẽ đặt tất cả sự chú ý của nó vào luồng của bạn. Khi hệ điều hành chuyển lõi sang một luồng khác, luồng của bạn dừng thực thi trong khi luồng khác đang được bảo trì.

Vì vậy, thực hiện nhảy xung quanh tất cả các nơi. Nhưng tính toàn vẹn của bộ hướng dẫn máy vẫn còn nguyên, bất chấp những bước nhảy này, bởi vì chúng tôi xây dựng hàng rào và cơ chế đồng thời để bảo vệ trạng thái của nó và trạng thái của các đối tượng mà nó tương tác.

Vì vậy, luồng đề cập, không phải để thực hiện các lệnh trong bất kỳ luồng cụ thể nào, mà là các hướng dẫn cuối cùng sẽ được thực hiện trong luồng mà chúng ta đã tạo. Nói cách khác, mỗi luồng, có thể được coi là một máy hoặc tác nhân riêng lẻ (chúng tôi gọi chúng là các quy trình nhẹ), mà không phải suy nghĩ về tất cả các chuyển đổi ngữ cảnh mà hệ điều hành đang thực hiện để mang lại vẻ ngoài là tất cả thi hành đồng thời.

Nói cách khác, mặc dù tất cả các bước nhảy xung quanh mà HĐH thực hiện đằng sau hậu trường, mà chúng ta gọi là một luồng (chuỗi hoạt động mà chúng ta đang thực hiện trong một quy trình nhẹ) vẫn có thể được coi là cùng một chuỗi hoạt động, chúng tôi đã không sinh ra chủ đề, giả sử chúng tôi đã thực hiện các biện pháp bảo vệ đồng thời cần thiết.


Nếu mô tả này có vẻ quá nặng nề và trừu tượng, thì hãy nghĩ đến một chủ đề trong một diễn đàn, như Reddit. Bạn có thể tách ra các cuộc thảo luận mới; mỗi cuộc thảo luận là chủ đề riêng của nó. Bạn có thể nhảy qua lại giữa các chủ đề. Nhưng mỗi luồng vẫn duy trì tính toàn vẹn cấu trúc của nó như một cuộc trò chuyện riêng lẻ.


4

Thật khó để gỡ rối (ý định chơi chữ hoàn toàn) nguồn gốc của thuật ngữ "Chủ đề" bởi vì nhiều thứ khác nhau làm vẩn đục nước.

Việc sử dụng chủ đề trong diễn đàn hoặc ý nghĩa email gần như chắc chắn bắt nguồn từ cụm từ "chủ đề của cuộc trò chuyện" mà theo điều này có từ năm 1593.

Mọi thứ dường như chưa rõ ràng về ý nghĩa của chủ đề mà bạn đang hỏi về mặc dù theo liên kết này , các chủ đề mà chúng ta biết chúng thực sự không được gọi là "chủ đề" cho đến những năm 70 hoặc có thể là đầu thập niên 80 mặc dù đã thực hiện quy trình bộ nhớ dùng chung thực sự dự đoán những gì chúng ta nghĩ về các quá trình nặng nề ngày nay. Cho rằng một hình thức xử lý đa bộ nhớ dùng chung có liên quan được gọi là "sợi", tôi nghi ngờ rằng từ "sợi" được cho là gợi nhớ đến vải dệt hoặc một số tương tự liên quan đến dệt.


3

Tôi nghĩ rằng nó phải liên quan đến một "luồng suy luận" hay "luồng suy nghĩ".

Ngược lại với một quá trình, chủ đề chia sẻ bộ nhớ. Vì vậy, nếu một quá trình được so sánh với một người có trí tuệ (bộ nhớ) của riêng mình, một chủ đề có thể được so sánh với một dòng suy nghĩ trong tâm trí đó.


1

Tôi đọc ở đâu đó sự tương tự của các luồng trong lập trình. Hãy nghĩ CPU là kim may và luồng là chuỗi thực. Bây giờ, nếu bạn có nhiều kim may nhưng chỉ là một sợi. Đừng nghĩ rằng nó sẽ không hiệu quả. CPU / kim may khác sẽ chờ đợi chỉ có sẵn. Tuy nhiên, nếu chúng ta có nhiều luồng, thì công việc có thể được hoàn thành trong một thời gian ngắn.


1
có gì sai với nó? Tại sao -1?
khéo léo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.