thắc mắc nên lựa chọn multiprocessing hay threading

  • Người tạo chủ đề Người tạo chủ đề Hoangptkd
  • Ngày bắt đầu Ngày bắt đầu
Có chứ bác , em chạy 1 lúc nhiều chrome và các chrome hoạt động đa luồng cùng 1 lúc thì nó sẽ cần đến đa luồng , hoặc đa tiến trình, thì có 2 phương pháp là sử dụng multiprocess và thread như em đề cập ở trên , em đang tham khảo mọi người về cách nào tốt hơn ý ạ

via theNEXTvoz for iPhone
Ko liên quan, xem lại source đi
Ko có chuyện tool điều khiển lại ảnh hưởng tới số lượng chrome mở
Trong tool ông bị nghẽn chỗ nào rồi, chứ chả bao giờ tool điều khiển lại ảnh hưởng tới số lượng chrome điều khiển cả, này chỉ là vấn đề lập trình thôi ko liên quan tới multi process hay threading gì cả, ông đang đi sai hướng rồi
 
Ko liên quan, xem lại source đi
Ko có chuyện tool điều khiển lại ảnh hưởng tới số lượng chrome mở
Trong tool ông bị nghẽn chỗ nào rồi, chứ chả bao giờ tool điều khiển lại ảnh hưởng tới số lượng chrome điều khiển cả, này chỉ là vấn đề lập trình thôi ko liên quan tới multi process hay threading gì cả, ông đang đi sai hướng rồi
à , cái vấn đề tool tạo ra nhiều gui bị lỗi khi chạy multiprocess (ở cái bình luận thứ 2) thì đúng là em đang tìm hướng giải pháp ở code , vì thread không bị sao còn multiprocess thì bị thì có thể em code lỗi ở phần nào đó
nhưng mà em đang đề cập tới cả vấn đề lớn là dùng multiprocess hay threading sẽ hiệu quả hơn , tức là tối ưu được khả năng chạy đa luồng để có thể mở nhiều chrome nhất có thể mà không bị đơ máy nữa ạ, vấn đề này thì em nghĩ là so sánh multiprocess với thread mới là điều cần xem xét chứ ( đây là 1 câu hỏi chung thôi ạ chứ chưa đề cập tới chạy cái gì sẽ bị lỗi )
 
Sửa lần cuối:
V ko ngon đâu
đó là cách duy nhất em nghĩ ra hiện tại r bác ạ , còn tương lai e sẽ upgrade sau , trước em sử dụng mỗi selenium thôi nhưng sau tìm hiểu cả js thấy kết hợp vô sẽ hiệu quả hơn , thì em dùng thấy cũng ổn , nhưng còn tối ưu hóa thì chưa đạt được nên đang tìm hiểu tiếp a
 
đó là cách duy nhất em nghĩ ra hiện tại r bác ạ , còn tương lai e sẽ upgrade sau , trước em sử dụng mỗi selenium thôi nhưng sau tìm hiểu cả js thấy kết hợp vô sẽ hiệu quả hơn , thì em dùng thấy cũng ổn , nhưng còn tối ưu hóa thì chưa đạt được nên đang tìm hiểu tiếp a
Dùg win api đi, selenium bị che, shadownroot,hover, frame khá khó
 
Dùg win api đi, selenium bị che, shadownroot,hover, frame khá khó
à cái phần selenium bị che là cơ chế nó vậy hay gì ạ bác , tại em cungx có sử dụng 1 app để đồng bộ thì gặp tình trạng này thật , nhưng em tự code lại chưa gặp vấn đề này , k biết là bị lỗi lâu lâu hay là cơ chế nó là vậy
 
Mình cũng dùng py + sele để chạy tool, pysimplegui làm FE. Gồm có 1 thread xử lý ui, 1 thread update ui.
Cho phép user tùy chỉnh số lượng chrome chạy, mỗi chrome đc điều khiển bởi 1 thread selenium.

Thằng selenium mỗi khi gọi chrome nó sẽ tạo 1 process webdriver và 1 process chrome.

Nên là muốn scale lên nhiều chrome thì có thể giảm phân giải chrome đi với xem lại phần xử lý ui với điều khiển sele xem chỗ nào gậy chậm. Hoặc chạy headless.

Gửi từ HUAWEI YAL-L21 bằng vozFApp
 
Mình cũng dùng py + sele để chạy tool, pysimplegui làm FE. Gồm có 1 thread xử lý ui, 1 thread update ui.
Cho phép user tùy chỉnh số lượng chrome chạy, mỗi chrome đc điều khiển bởi 1 thread selenium.

Thằng selenium mỗi khi gọi chrome nó sẽ tạo 1 process webdriver và 1 process chrome.

Nên là muốn scale lên nhiều chrome thì có thể giảm phân giải chrome đi với xem lại phần xử lý ui với điều khiển sele xem chỗ nào gậy chậm. Hoặc chạy headless.

Gửi từ HUAWEI YAL-L21 bằng vozFApp
cái giảm độ phân giải thì e mới nghe , để em tìm hiểu
 
Thớt dùng ngôn ngữ nào, OS nào? Với ngôn ngữ thực sự support multithread, nghĩa là một process có thể sử dụng nhiều core một lúc thì cơ bản multhread với multiprocess ko có khác biệt về hiệu năng, multiprocess sẽ tốn ram hơn tí chút nhưng thường ko đáng kể. Khác nhau chủ yếu ở cách thiết kế, quản lý ứng dụng thôi. Multiprocess thì tránh được các luồng lỗi, crash ảnh hưởng trực tiếp đến nhau nhưng sẽ khó khăn hơn khi giao tiếp giữa các luồng vì ko dùng chung memory space:doubt:
 
Thớt dùng ngôn ngữ nào, OS nào? Với ngôn ngữ thực sự support multithread, nghĩa là một process có thể sử dụng nhiều core một lúc thì cơ bản multhread với multiprocess ko có khác biệt về hiệu năng, multiprocess sẽ tốn ram hơn tí chút nhưng thường ko đáng kể. Khác nhau chủ yếu ở cách thiết kế, quản lý ứng dụng thôi. Multiprocess thì tránh được các luồng lỗi, crash ảnh hưởng trực tiếp đến nhau nhưng sẽ khó khăn hơn khi giao tiếp giữa các luồng vì ko dùng chung memory space:doubt:
em dùng python trên win bác ạ , về cơ bản nếu vậy thì em hiểu r
 
em dùng python trên win bác ạ , về cơ bản nếu vậy thì em hiểu r
Python thì ko hỗ trợ sử dụng nhiều core cùng lúc cho một process(chính xác là ở một thời điểm chỉ một thread thực sự được chạy), nên multithread chỉ giúp bạn quản lý các tác vụ trong code chứ ko phải để tận dụng CPU nhiều core. Nếu việc của bạn xử lý nặng về CPU thì nên dùng multiprocess:doubt:
 
Python thì ko hỗ trợ sử dụng nhiều core cùng lúc cho một process(chính xác là ở một thời điểm chỉ một thread thực sự được chạy), nên multithread chỉ giúp bạn quản lý các tác vụ trong code chứ ko phải để tận dụng CPU nhiều core. Nếu việc của bạn xử lý nặng về CPU thì nên dùng multiprocess:doubt:
Ngáo mẹ nó rồi, thế chạy nhiều chrome chắc nó single process :D
 
Ah, giờ mới đọc thớt dùng Selenium. Vậy thì chả cần quan tâm multhiread hay multiprocess làm gì vì bản chất code python chỉ là thằng client điều khiển, mọi tác vụ nặng chạy phía webdriver hết, mỗi tab chrome mở lên là 1 process riêng biệt bất kể phía python bạn dùng multihread hay multiprocess. Thấy chậm thì phải hỏi cụ thể cách cải thiện hiệu năng Selenium(ví dụ chạy headless), tối ưu lại logic các đầu việc chạy trên chrome với mua con máy khỏe về chứ đừng bận tậm vấn đề này nữa:doubt:
 
Ah, giờ mới đọc thớt dùng Selenium. Vậy thì chả cần quan tâm multhiread hay multiprocess làm gì vì bản chất code python chỉ là thằng client điều khiển, mọi tác vụ nặng chạy phía webdriver hết, mỗi tab chrome mở lên là 1 process riêng biệt bất kể phía python bạn dùng multihread hay multiprocess. Thấy chậm thì phải hỏi cụ thể cách cải thiện hiệu năng Selenium(ví dụ chạy headless), tối ưu lại logic các đầu việc chạy trên chrome với mua con máy khỏe về chứ đừng bận tậm vấn đề này nữa:doubt:
Vâng ạ , e hiểu r

via theNEXTvoz for iPhone
 
các bác cho em hỏi, nếu dùng python để tải file thì nên dùng threading hay multiprocessing ạ, hiện tại em dùng threading để tải file, chia ra 4 thread tải cùng lúc, trong mỗi thread sẽ có một chương trình tải chức năng chia nhỏ file tải và sử dụng đa luồng để tải các file đó, nhưng vấn đề của em là càng tải lâu sẽ càng chậm, em khô g biết do đâu
 
Task bạn muốn là chạy chrome sẽ cần compute resource để tính toán gì đó thì chạy nhiều thread sẽ bị bottleneck vì thread chỉ là tiến trình chờ, vd những task IO bound hoặc request thì xài thread được. Còn tính toán thì bạn xài nhiều thread nó vẫn chờ thằng trước tính rồi thằng sau mới có resource để tính (chỉ có 1 cpu tính toán) vì vậy xài thread ko hiệu quả mà xài process ( 1 cpu - 1 process)
Thanks bác, mình cũng đi code nhiều năm rồi nhưng đọc được mấy câu này thấm quá. Chợt nhận ra trước giờ mình xài Thread kiểu như 1 con gà
 
các bác cho em hỏi, nếu dùng python để tải file thì nên dùng threading hay multiprocessing ạ, hiện tại em dùng threading để tải file, chia ra 4 thread tải cùng lúc, trong mỗi thread sẽ có một chương trình tải chức năng chia nhỏ file tải và sử dụng đa luồng để tải các file đó, nhưng vấn đề của em là càng tải lâu sẽ càng chậm, em khô g biết do đâu
Tải file là I/O bound, chủ yếu ngồi chờ dữ liệu đổ về chứ CPU xử lý ko nhiều, dùng multithread hay multiprocess ko ảnh hưởng hiệu năng, code cái nào tiện thì dùng. Khi nào chạy task CPU bound(nặng về tính toán CPU) thì mới phải phải cân nhắc :big_smile:
 

Thống kê chủ đề

Ngày tạo
Hoangptkd,
Người trả lời cuối
ikrus,
Trả lời
39
Lượt xem
4.599
Quay lại
Lên đầu trang