CONCURRENCY LÀ GÌ

     

Lý vị tôi để tựa đề bài viết “Đồng thời chưa phải là tuy nhiên song” cũng chính vì sau khi tình cờ nghe bài xích phát biểu “Concurrency Is Not Parallelism” của Rob Pike, tôi cảm xúc hai thuật ngữ này hơi hay với tôi biết chắc chắn rằng rằng còn khá nhiều người trong chúng ta đang lầm lẫn hai có mang này. Chân thành mà nói ra, tôi cũng trở nên nhầm lẫn chúng nếu như không có sự khám phá một giải pháp rõ ràng. độc nhất là trong xây dựng hai quan niệm này khá thịnh hành như Multithreading (Xử lý nhiều luồng), Programming for multi vi xử lý core processors (Lập trình cho chip xử lý đa lõi)… .Vậy nên, vào nội dung bài viết này tôi vẫn trình bày một trong những quan điểm và ví dụ nhưng mà tôi đã khám phá được với nhị thuật ngữ này. Có thể chưa đề xuất là tốt nhất nhưng hoàn toàn có thể nó sẽ làm mọi tín đồ hiểu được phần nào sự biệt lập của chúng.Bạn đang xem: Concurrency là gì

Đầu tiên ta xét về có mang của Đồng thời (Concurrency) với Song tuy vậy (Parallelism)? Theo quan niệm multithreading của Sun thì :

Song tuy nhiên (Parallelism) : Một điều kiện phát sinh khi tất cả hai luồng cùng thực hiện đồng thời. (A condition that arises when at least two threads are executing simultaneously.)Đồng thời (Concurrency): Một điều kiện tồn tại lúc có tối thiểu hai luồng cùng tiến hành đồng thời. Bao quát hơn nó bao hàm cả gần như khoảng thời gian giữa những xử lý tuy nhiên song ảo.(A condition that exists when at least two threads are making progress. A more generalized form of parallelism that can include time-slicing as a khung of virtual parallelism.)

Chúng ta rất có thể hiểu đơn giản và dễ dàng như sau:

Đồng thời là khi hai hoặc nhiều nhiệm vụ chạy bao gồm thể bắt đầu , chạy và hoàn thành trong khoảng thời gian ông xã chéo. Nó không độc nhất thiết là toàn bộ đều được chạy tức thì lập tức. Ví dụ nhiều nhiệm bên trên một cỗ xử lý solo lõi.

Bạn đang xem: Concurrency là gì

Song song là khi những nhiệm vụ chạy cùng một lúc. Lấy ví dụ nhiều trách nhiệm chạy cùng lúc trên một bộ xử lý đa lõi.

Đọc xong hai định nghĩa trên tôi tin rằng hồ hết thứ còn rất mơ hồ với các bạn :)). Để dễ nắm bắt hơn tôi đang lấy một vài ví dụ như sau:

Ví dụ trước tiên là trong bài phát biểu của Rob Pike Concurrency Is Not Parallelism:

Ông giới thiệu một nhiệm vụ để lý giải về đồng thời như sau: Hãy đốt những hướng dẫn thực hiện của ngữ điệu cũ cùng một lúc.


*

Nếu với chỉ một gopher này sẽ mất nhiều thời gian. (Note: gopher là một linh vật sở hữu tính hình tượng của ngữ điệu Golang :D) . Do đó ta cần nhiều gopher và các xe đẩy để đẩy nhanh tốc độ công việc.


*

Nhưng lúc có không ít gopher thì sẽ xảy ra tình trạng tắc nghẽn trong quá trình di chuyển. Vì vậy cần phải đồng hóa hóa giữa những gophers bằng một hiệ tượng liên lạc nào kia (ví dụ như 1 tin nhắn) cùng làm cho những gophers thực sự làm cho việc độc lập hoặc phối phù hợp với nhau.


*

Như vậy nâng cấp hiệu suất công việc bằng cách thêm nhiều gophers đồng thời thao tác làm việc một phương pháp liên tục. Đây là một cái nhìn sâu rộng so với song song.

Xem thêm: Từ Điển Anh Việt " Recreational Là Gì ? Từ Điển Anh Việt Recreational

Một ví dụ khác của Joe Armstrong :

Concurrent = Two queues & one coffee machine.(đa nhiệm trên cỗ vi xử lý đơn lõi)


*

*

Tóm lại cùng với hai nhiệm vụ T1 và T2 là đôi khi nếu hai nhiệm vụ được thực hiện trong các khoảng thời hạn không được xác đinh trước. (với cỗ xử lý solo lõi hoặc nhiều lõi)

T1 hoàn toàn có thể được triển khai và chấm dứt trước T2T2 rất có thể được tiến hành và ngừng trước T1

Và song song là T1 cùng T2 được thực hiện đồng thời tại một thời điểm (với chip xử lý đa lõi)

Từ đều ví dụ trên tôi nghĩ chúng ta đã phần nào đang hiểu lý do “Đồng thời chưa hẳn là tuy vậy song – Concurrency is not Parallelism.”.

Thuật ngữ tuy vậy song đề cập đến những kỹ thuật để triển khai các chương trình nhanh hơn bằng cách thực hiện tại một số đo lường và thống kê song song. Điều này đòi hỏi phần cứng với tương đối nhiều đơn vị xử lý. Vấn đề then chốt của xử lý tuy vậy song là để giảm dựa vào vào tài liệu để có thể thục hiện tại các tính toán trên cách đơn vị tính toán hòa bình và giao tiếp giữa chúng là buổi tối thiểu.

Thuật ngữ đôi khi đề cập mang lại kỹ thuật mà làm cho chương trình rất có thể sử dụng công dụng và triệt để hơn phần cứng. Đồng thời rất có thể thực hiện cùng sử dụng được rất nhiều tiến trình trên một đơn vị xử lý duy nhất, bởi vì đó vận tốc của nó sẽ giỏi hơn bên trên nhiều đơn vị xử lý so với tuy vậy song.

Kết bài tôi muốn nhấn mạnh một lần tiếp nữa :

Đồng thời chưa phải là tuy nhiên song – Concurrency is not Parallelism.

Xem thêm: Những Câu Nói Hay Về Sách Và Thói Quen Đọc Sách Để Có Động Lực Đọc Sách Mỗi Ngày

Đây là tất cả những gì tôi tò mò được cùng ý kiến cá nhân của mình. Nếu chúng ta có chủ kiến gì hoàn toàn có thể comment dưới để góp ý và cùng cả nhà thảo luận.