2013-04-30 33 views
10

Cụ thể là lớp GreenPool trong Eventlet. Tôi đã thử nghiệm một số mã để tải các tệp lớn lên S3 dưới dạng các phần riêng lẻ của quá trình tải lên nhiều phần. Những gì tôi đã nhận thấy cho đến nay là khi sử dụng eventlet việc sử dụng CPU là thấp hơn nhiều. Chỉ cần tìm kiếm ưu và khuyết điểm khác cho Eventlet chỉ bằng cách sử dụng luồng. Cảm ơn.Lợi ích của việc sử dụng mô-đun Eventlet trong python trên mô-đun luồng là gì?

Trả lời

9

Về cơ bản, chuỗi chủ đề màu xanh lá cây Eventlet được coi là tương tự nhẹ của chuỗi hệ điều hành cho tất cả các mục đích thực tế. Ưu điểm:

  • rẻ hơn để tạo về CPU, bộ nhớ và syscalls (0)
  • rẻ hơn để chuyển đổi; điều này đặc biệt đúng trong Python 2.x trong đó mỗi thread chủ động cố gắng lấy GIL làm lãng phí CPU.

Nhược điểm:

  • quan trọng vì nhiều chủ đề màu xanh lá cây hoạt động trong một thread OS, khi một syscall (ví dụ như mở (2)) trong một trong số họ khối thread OS, tất cả các chủ đề màu xanh lá cây cũng bị chặn.
  • không có SMP (đa lõi/đa lõi); nhưng sau đó với GIL, điều này cũng đúng đối với các luồng hệ điều hành trong Python. Với greenlet [1] hạn chế này là nghiêm ngặt hơn vì nó không thể cho một số phần mở rộng C để phát hành GIL để cho phép các chủ đề màu xanh lá cây khác để tiến hành.

Bạn cũng có thể tìm thấy câu trả lời này hữu ích: Is a greenthread equal to a "real" thread

[1] "luồng" thư viện sử dụng bởi Eventlet https://github.com/python-greenlet/greenlet

Các vấn đề liên quan