Hàm, Tiến trình và Thực thi trong JavaScript

Thành thạo JavaScript đòi hỏi bạn phải hiểu cách mã nguồn vận hành.

Dưới đây là những khái niệm cốt lõi mà bạn cần biết.

𝟭. 𝟱 𝗧𝘆𝗽𝗲 𝗵𝗮̀𝗺 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁

𝟮. 𝗣𝗿𝗼𝗰𝗲𝘀𝘀 𝘃𝘀. 𝗧𝗵𝗿𝗲𝗮𝗱

Một Tiến trình (Process) là một chương trình đang chạy. Mỗi tiến trình có bộ nhớ riêng. Nếu Chrome bị lỗi, Spotify vẫn tiếp tục chạy vì chúng là các tiến trình riêng biệt.

Một Luồng (Thread) là một đơn vị nhỏ bên trong một tiến trình. Các luồng chia sẻ cùng một bộ nhớ. Điều này giúp chúng nhanh hơn và nhẹ hơn so với các tiến trình.

𝟯. 𝗦𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀 𝘃𝘀. 𝗔𝘀𝘆𝗻𝗰𝗵𝗿𝗼𝗻𝗼𝘂𝘀

JavaScript là đơn luồng (single-threaded). Nó thường chỉ chạy một tác vụ tại một thời điểm.

Thực thi Đồng bộ (Synchronous Execution): Các tác vụ chạy theo một thứ tự nghiêm ngặt. Dòng tiếp theo phải chờ dòng hiện tại hoàn thành. Điều này có thể làm chậm ứng dụng của bạn nếu một tác vụ mất quá nhiều thời gian.

Thực thi Bất đồng bộ (Asynchronous Execution): Các tác vụ có thể bắt đầu ngay bây giờ và hoàn thành sau đó. Điều này ngăn mã của bạn bị chặn (blocking).

Cách thức hoạt động:

Ví dụ về luồng Bất đồng bộ:

  1. Log "Hi"
  2. Bắt đầu bộ hẹn giờ trong 2 giây
  3. Log "End"
  4. (2 giây trôi qua) Log "Vicky"

Mã không chờ bộ hẹn giờ. Nó chuyển ngay sang "End".

Source: https://dev.to/kamalesh_ar_6252544786997/types-of-function-and-threads-process-and-synchronous-vs-asynchronous-in-javascript-1hhd

Optional learning community: https://t.me/GyaanSetuAi