Đa Luồng Trong Nodejs - Programming - Dạy Nhau Học Trang chủ » đa Luồng Trong Nodejs » Đa Luồng Trong Nodejs - Programming - Dạy Nhau Học Có thể bạn quan tâm đa Luồng Trong Php đa Luồng Trong Python đa Luồng Trong Spring Boot Dạ Lương Tự Thủy đa Luồng Và Bất đồng Bộ Đa luồng trong nodejs programming nodejs Duy_Hoang98 (DS) March 2, 2022, 5:19pm #1 Em có tìm và thấy cái này https://nodejs.org/api/worker_threads.html . Nodejs đã hỗ trợ đa luồng phải không ạ. Ví dụ giờ vps của em 2gb ram em lấy 100 row trong db, mỗi row e muốn xử lý cùng lúc 50 thread thì liệu có đủ bộ nhớ để chạy ko ak. Ai có code example dễ hiểu share cho em demo thì càng tốt ạ, em cảm ơn. 1 Like kisuluoibieng (Tên Gì Cũng Được) March 2, 2022, 5:58pm #2 Bạn tìm thấy được link đó? Rồi sao nữa? Câu chữ nào trong cái link trên làm bạn đưa ra phỏng đoán hay ý tưởng trên? Bạn có thể chia sẻ cho mọi người được không? 3 Likes Duy_Hoang98 (DS) April 8, 2022, 8:46am #3 Hiện tại kiểu code của e là ntn a conn.query('SELECT data FROM table', async function (err, result) { if (err) { throw err; } else { for (data of result) { var list = await getData(); // array 50 elems for (page of list) { var seprateThread = new Worker(__dirname + "/sub.js", {}); seprateThread.on("message", (response) => { // response from sub.js }); var params = { //params post to sub.js }; seprateThread.postMessage(params); } } } }); như kia là nó sẽ mở 50 luồng chạy đến file sub.js fai k ak? nhưng em cron để treo chạy nó 1p 1 lần thì nó lag server ý a kisuluoibieng (Tên Gì Cũng Được) March 3, 2022, 3:53am #4 Rất vui khi topic này của bạn không phải là hỏi vu vơ Cùng phân tích vấn đề một tí khi file sub.js kia trong worker thread chạy xong, nó cho bạn một cái event on message bạn sẽ làm gì với event đó? 50 cái event đó có sử dụng cùng tài nguyên gì đó hay không? có cần thứ tự không? sau 50 cái event đó thì có cần chốt sổ hay handle sau khi tất cả 50 event chạy xong? với sức mạnh của máy tính hiện nay, thì 50 thread tác vụ thông thường không phải là vấn đề gì đó ghê gớm lắm, quan trọng vẫn là 50 thread kia bạn làm gì trong đó thôi Ok, phần đặt vấn đề đã xong, bạn tự trả lời những câu hỏi bên trên để rút ra kết luận, nếu chưa rút ra được kết luận thì hỏi tiếp Nói về cái link bạn đưa ra một tí image987×615 49.6 KB Đây là section đầu tiên của link trên và nó chỉ đứng sau phần mục lúc thôi nên có thể nói, nếu bạn đọc link trên, thì trên hình là đoạn đầu tiên mà bạn sẽ đọc Vây đoạn trên nó nói gì? Workers (threads) are useful for performing CPU-intensive JavaScript operations. They do not help much with I/O-intensive work. The Node.js built-in asynchronous I/O operations are more efficient than Workers can be. Workers (threads) hữu dụng cho việc sửa dụng tài nguyên tính toán cho cpu, tức là bạn có thể sử dụng nhiều thread để khiến cho cpu nó chạy “điên cuồng” hơn (tất nhiên là trong giới hạn của cpu) Nhưng, code không phải lúc nào cũng chỉ dùng tài nguyên cpu mà còn nhiều tài nguyên khác nữa, ổ cứng, network, database, bàn phím, ngoại vi…, và các thể loại còn lại đó gọi chung là IO Và chúng là có câu thứ 2, They do not help much with I/O-intensive work, workers không giúp gì được nhiều khi cho tác vụ IO The Node.js built-in asynchronous I/O operations are more efficient than Workers can be. vãn là cơ chế async IO sẵn có đã là tốt những gì có thể rồi, bạn không cần phải suy nghĩ gì để tối ưu cái chuyện đó cả để có thể dẽ hình dung hơn, thì mình có một ví dụ cụ hể như này A, B cùng mở một cửa hàng làm và bán bánh, A làm shipper (resouce database), B làm đầu bếp (resouce - CPU) thường thì A nếu giao nhanh thì chỉ cần 5p là có thể giao một đơn hàng B thì 3p để làm ra một cái bánh => trong một giờ có thể làm được 20 bánh, và giao được 12 đơn câu chuyện sẽ chẳng có gì đáng nói nếu so lương đơn hàng không lớn, tầm 10 đơn/giờ (1 đơn 1 bánh) mỗi giờ khi đó, trong 1 giờ, A cần giao 10 đơn, B cần làm 10 bánh, cả 2 đều rất thoải mái Nhưng rồi nhiều người thấy ngon, nên số lượng đơn hàng tăng lên, đến 15 đơn một giờ lúc này, A phải giao hàng liên tục, và dù có gắng hết sức, nhưng A vẫn chỉ có thể giao được 12 đơn trong một giờ mà thôi, nhưng lúc này làm 15 bánh trong một giờ vẫn là chuyện trong tầm tay của B vì không thể giao nhiều hơn, nên họ đành từ chối 3 đơn, lúc này thì cái họ thiếu là shipper (databse) chứ không phải thợ làm bánh (CPU) qua câu chuyện trên, dù thợ làm bánh có làm được 1000 bánh trong 1 giờ thì cũng vô dụng, cũng chỉ có thể bán đợc 12 bánh trong 1 giờ, nên thợ làm bánh cũng chỉ làm đúng số bánh cần giao rồi ngồi đợi shipper mà thôi, rảnh cũng không làm thêm được vì không có đủ resouce shipper 8 Likes Nên dùng CSDL nào khi chạy multithread Python banhmisg9509 (Nguyễn Hùng) March 3, 2022, 5:13am #5 javascript sẽ ko bao giờ có multithread như mấy ngôn ngữ khác. Lý do là nếu bây giờ thêm nó vào thì mấy hệ thống hoặc web app có thể fail 2 Likes Duy_Hoang98 (DS) March 3, 2022, 5:45am #6 nó không hiệu quả như các ngôn ngữ khác ạ superthin (Vô Thin) March 3, 2022, 8:10am #8 Không rõ có phải ông chủ topic này đang định vắt kiệt tài nguyên server bằng những dòng code hay không. Đừng có nói làm việc liên quan đến MMO và thuê hàng loạt VPS giá rẻ giờ muốn tận dụng tài nguyên… Câu chuyện này làm nhớ trước đây có ông nào đó hỏi có cách nào đang download thì ghi luôn vào đĩa CD thay vì đợi tải xong rồi mới ghi… nó rồi cũng quay lại câu chuyện cửa hàng bánh như @kisuluoibieng đề cập ở trên. Nên nhớ: con người chỉ làm việc đơn nhiệm => máy tính làm việc đa nhiệm cũng chỉ để quảng cáo cho vui hoặc mấy nhà khoa học cần máy tính khủng xử lý mấy cái phép toán khủng. Người viết code bình thường, cứ lập trình như từng làm lâu nay cho bớt rối não. 5 Likes noname00 (HK boy) split this topic April 8, 2022, 8:46am #9 A post was merged into an existing topic: Topic lưu trữ các post off-topic - version 3 DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » đa Luồng Trong Nodejs Cách Thực Hiện đa Luồng - Multithreading Với Node.js - Techmaster Đa Luồng (Multithreading) Trong Nodejs - Worker Thread Hiểu Về Cluster Trong Node.js – đa Luồng Trong Node.js - VNTALKING Nodejs đã Quyết Vấn đề Kết Nối đồng Thời Cao Như Thế ... - Anonystick Javascript - Single-thread Liệu đã Lỗi Thời? - Viblo Hướng Dẫn Multithread Với Node.js Thảo Luận - Node JS Vẫn Chưa Thể Lập Trình đa Luồng | TheNEXTvoz Multithreading — Làm Thế Nào để Tạo Chủ đề Trong Nodejs Tìm Hiểu Về Event Loop Trong NodeJS - Openplanning Node.js Multithreading: Worker Threads And Why They Matter Worker Threads Là Gì? Bạn đã Biết Khi Nào Thì Sử Dụng ... - v Node JS đơn Luồng Vs đa Luồng (Sử Dụng CPU: Bất Kỳ Sự Khác Biệt ... Có Thể đạt được đa Luồng Trong Nodejs Không? [bản Sao] - HelpEx Kiến Trúc Xử Lý Bất đồng Bộ Trong Node.JS - DEV Community