Nguồn
Concurrency (Đồng thời)
Hãy tưởng tượng một chương trình xử lý nhiều nhiệm vụ như tiếp nhận dữ liệu người dùng, đọc file và thực hiện các yêu cầu mạng. Concurrency cho phép chương trình xử lý linh hoạt các nhiệm vụ này, ngay cả trên một lõi CPU duy nhất. Cách thức hoạt động là CPU chuyển đổi nhanh chóng giữa các nhiệm vụ, làm việc trên mỗi nhiệm vụ trong một thời gian ngắn trước khi chuyển sang nhiệm vụ tiếp theo. Quá trình này, được gọi là chuyển đổi ngữ cảnh (context switching), tạo ảo giác rằng các nhiệm vụ đang được thực hiện đồng thời, mặc dù thực tế không phải vậy.
Giống như một đầu bếp đang làm nhiều món ăn cùng một lúc. Anh ta chuẩn bị một món một chút, sau đó chuyển sang món khác và cứ tiếp tục luân phiên. Mặc dù các món ăn không hoàn thành cùng lúc, tất cả đều tiến triển. Tuy nhiên, chuyển đổi ngữ cảnh cũng có chi phí: CPU phải lưu và khôi phục trạng thái của mỗi nhiệm vụ, và quá nhiều chuyển đổi ngữ cảnh có thể ảnh hưởng đến hiệu suất.
Parallelism (Song song)
Trong parallelism, nhiều nhiệm vụ thực sự được thực hiện cùng lúc bằng nhiều lõi CPU. Mỗi lõi xử lý một nhiệm vụ khác nhau một cách độc lập cùng một thời điểm. Tưởng tượng một bếp có hai đầu bếp; một người thái rau, người kia nấu thịt, cả hai công việc đều được thực hiện song song, giúp bữa ăn được chuẩn bị nhanh hơn.
Sự khác biệt
Trong thiết kế hệ thống, concurrency phù hợp với các nhiệm vụ đợi, như thao tác I/O. Nó cho phép các nhiệm vụ khác tiếp tục tiến hành trong thời gian chờ, giúp cải thiện hiệu suất tổng thể. Ví dụ, một máy chủ web có thể xử lý nhiều yêu cầu đồng thời, ngay cả khi chỉ sử dụng một lõi CPU.
Ngược lại, parallelism rất hiệu quả trong các tác vụ tính toán nặng như phân tích dữ liệu hoặc kết xuất đồ họa. Những tác vụ này có thể được chia thành các phần nhỏ, độc lập và thực hiện đồng thời trên các lõi khác nhau, tăng tốc quá trình đáng kể.
Một số ví dụ
- Ứng dụng web: Sử dụng concurrency để xử lý đồng thời input từ người dùng, truy vấn cơ sở dữ liệu và các tác vụ nền, mang lại trải nghiệm người dùng mượt mà.
- Học máy: Tận dụng parallelism để huấn luyện các mô hình lớn. Bằng cách phân phối việc huấn luyện trên nhiều lõi hoặc máy, thời gian tính toán được giảm đáng kể.
- Kết xuất video: Sử dụng parallelism để xử lý nhiều khung hình đồng thời trên các lõi khác nhau, giúp tăng tốc quá trình kết xuất.
- Mô phỏng khoa học: Sử dụng parallelism để mô phỏng các hiện tượng phức tạp như mô hình thời tiết hoặc tương tác phân tử trên nhiều bộ xử lý.
- Xử lý dữ liệu lớn: Các framework xử lý dữ liệu lớn như Hadoop và Spark tận dụng parallelism để xử lý các tập dữ liệu lớn một cách nhanh chóng và hiệu quả.
Sự liên quan giữa Concurrency và Parallelism
Mặc dù concurrency và parallelism là hai khái niệm khác nhau, chúng có liên hệ mật thiết với nhau. Concurrency là về quản lý nhiều nhiệm vụ cùng lúc, trong khi parallelism là về thực hiện nhiều nhiệm vụ cùng lúc.
Concurrency có thể kích hoạt parallelism bằng cách cấu trúc chương trình để có thể thực hiện song song một cách hiệu quả. Bằng cách sử dụng concurrency, chúng ta có thể chia nhỏ một chương trình thành các nhiệm vụ độc lập nhỏ hơn, từ đó dễ dàng tận dụng parallelism.
Tuy concurrency không tự động dẫn đến parallelism, nhưng nó tạo nền tảng giúp parallelism dễ dàng đạt được. Các ngôn ngữ lập trình có tính năng concurrency mạnh giúp việc viết các chương trình hỗ trợ concurrency dễ dàng hơn, từ đó tạo điều kiện cho việc tận dụng parallelism.
Kết luận
Concurrency giúp quản lý nhiều nhiệm vụ hiệu quả để giữ cho chương trình của bạn phản hồi nhanh, đặc biệt là với các thao tác I/O. Parallelism tập trung vào việc tăng hiệu suất bằng cách xử lý các nhiệm vụ tính toán nặng cùng lúc.
Hiểu sự khác biệt và sự tương tác giữa concurrency và parallelism, đồng thời tận dụng sức mạnh của concurrency để hỗ trợ parallelism, sẽ giúp chúng ta thiết kế các hệ thống hiệu quả hơn và tạo ra các ứng dụng hoạt động tốt hơn.
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty