Hàng đợi có phải là một mô-đun trong Python không?
Tập tin. hàng đợi-ví dụ-1. py nhập phân luồng nhập Hàng đợi thời gian nhập, CÔNG NHÂN ngẫu nhiên = 2 lớp Công nhân (phân luồng. Chủ đề). def _ _init_ _(bản thân, hàng đợi). bản thân. _ _queue = phân luồng hàng đợi. Chủ đề. _ _init_ _(self) def run(self). trong khi 1. mục = bản thân. _ _xếp hàng. get() nếu mục là Không có. phá vỡ # đã đến cuối hàng đợi # giả vờ như chúng tôi đang làm một việc gì đó mất 10—100 ms thời gian. ngủ (ngẫu nhiên. randint(10, 100) / 1000. 0) in "nhiệm vụ", mục, "đã hoàn thành" # # dùng thử queue = Queue. Hàng đợi (0) cho tôi trong phạm vi (CÔNG NHÂN). Công nhân (hàng đợi). start() # bắt đầu một công nhân cho tôi trong phạm vi(10). xếp hàng. đặt (i) cho tôi trong phạm vi (CÔNG NHÂN). xếp hàng. put(None) # thêm các điểm đánh dấu cuối hàng đợi
1 2 3 4 5 6 7 8 9 0 Hàng đợi là một loại cấu trúc dữ liệu chứa dữ liệu theo cách Nhập trước Xuất trước. Hàng đợi tuân theo một thứ tự cụ thể cho các hoạt động được thực hiện trên dữ liệu. Hàng đợi được triển khai rộng rãi dưới dạng danh sách chờ cho các tài nguyên hoặc thiết bị được chia sẻ đơn lẻ như Máy in, CPU, Đĩa, v.v. Có nhiều loại hàng đợi khác nhau như hàng đợi đơn giản, hàng đợi ưu tiên, hàng đợi tròn và deque hoặc hàng đợi kết thúc kép. Tất cả các loại hàng đợi này được sử dụng cho các tình huống khác nhau. Ví dụ, hàng đợi rất hữu ích nếu chúng ta cần một quy trình được thực hiện lần lượt tự động theo thứ tự. e. giống như một danh sách. Nó sẽ xử lý các tác vụ theo cách gọi là “Vào trước ra trước”, nghĩa là quy trình hoặc tác vụ đầu tiên trong hàng đợi sẽ được thực thi và loại bỏ trước, sau đó các quy trình khác sẽ được bắt đầu. Hàng đợi có thể được triển khai bằng các ngôn ngữ lập trình như Python, Java, C++, v.v. Ở đây sẽ thảo luận về việc triển khai nó trong Ngôn ngữ lập trình Python Show
Hàng đợi trong Python là gì?Như chúng ta vừa thảo luận về hàng đợi là gì. Nó giống với Python và hoạt động trên cùng một phương pháp “Nhập trước xuất trước” (FIFO). Hàng đợi có hai đầu chẳng hạn như đầu trước và đầu sau. Các mục có thể được chèn vào là giao diện người dùng và các mục bị xóa khỏi hàng đợi là giao diện người dùng. Do đó, mục nào được chèn vào đầu tiên trong hàng đợi sẽ là mục đầu tiên sẽ bị xóa khỏi hàng đợi và nó thỏa mãn phương pháp FIFO. Hàng đợi Python hoạt động như thế nào?Hàng đợi Python có thể dễ dàng triển khai để giải quyết các vấn đề trong thế giới thực. Để hiểu rõ hơn, có thể so sánh với một hàng người đang chờ lấy số thứ tự để mua vé từ quầy bán vé. Người vào hàng đầu tiên sẽ được phát vé trước, sau đó sẽ bị loại khỏi hàng, tiếp theo là người tiếp theo vào hàng, v.v. Một logic tương tự cũng sẽ được áp dụng trong Hàng đợi Python để các chương trình và quy trình được thực thi. Chúng ta hãy xem sơ đồ bên dưới để hiểu rõ hơn về các đầu của Queue 12345Trong hàng đợi trên, phần tử đầu tiên 1 đại diện cho Mặt trước của hàng đợi và phần tử cuối cùng 5 đại diện cho phần cuối của hàng đợi sẽ được xử lý cuối cùng. Việc chèn sẽ diễn ra sau phần tử cuối cùng i. e. 5 và việc loại bỏ các phần tử sẽ diễn ra từ đầu danh sách i. e. 1 Các loại hàng đợi trong PythonNhư chúng ta vừa thảo luận trong phần giới thiệu rằng có 4 loại hàng đợi trong cấu trúc dữ liệu. Tuy nhiên, trong Python, chủ yếu có hai loại hàng đợi sẽ được thảo luận bên dưới
Thao tác trong PythonCác hoạt động có sẵn trong Python được mô tả như sau
Các phương thức có sẵn trong hàng đợiCó một số phương thức quan trọng có sẵn trong Python rất hữu ích. Những phương pháp này được liệt kê dưới đây
Danh sách Python tích hợpDanh sách các phương thức tích hợp sẵn trong Python có thể được sử dụng làm hàng đợi, nhưng việc sử dụng các phương thức tích hợp này làm hàng đợi không phù hợp lắm khi chúng ta nhìn nó từ góc độ hiệu suất. Các phương thức tích hợp sẵn trong Python là các hàm insert() và pop() được sử dụng để thêm và xóa các phần tử khỏi hàng đợi. Danh sách hơi chậm so với hàng đợi và lý do đằng sau điều này là khi chúng ta chèn một phần tử mới vào danh sách, nó yêu cầu dịch chuyển các phần tử theo một. Và quá trình này mất O(n) thời gian. Để hiểu rõ hơn về khái niệm này, hãy xem qua ví dụ bên dưới Ví dụ
ĐẦU RA [‘Person1’, ‘Person2’, ‘Person3’] người1
ĐẦU RA Chiều dài của hàng đợi. 4 Xóa phần tử khỏi hàng đợiViệc loại bỏ các phần tử khỏi hàng đợi diễn ra từ phía sau của hàng đợi. Quá trình loại bỏ một phần tử khỏi hàng đợi còn được gọi là deque. Hãy cùng xem ví dụ sau để hiểu rõ hơn về khái niệm này
ĐẦU RA tháng Giêng tháng 2 Sắp xếp hàng đợi PythonSắp xếp hàng đợi trở nên quan trọng trong một số tình huống mà chúng ta cần thực hiện các thao tác cụ thể. Nó có thể được thực hiện bằng Python bằng nhiều phương pháp khác nhau. Dưới đây là một ví dụ dưới đây để hiểu rõ hơn về việc sắp xếp hàng đợi
ĐẦU RA 1 2 10 16 22 Đảo ngược hàng đợi PythonHàng đợi có thể được đảo ngược để tận dụng hàng đợi khác. Nó cũng có thể được thực hiện cho đệ quy Có thể hiểu ví dụ dưới đây để biết cách chúng ta có thể đảo ngược hàng đợi Python
ĐẦU RA 9 2 20 3 4 10 Làm việc với hàng đợi. lớp xếp hàngCác lớp khác nhau có trong mô-đun Queue của Python. Trong tất cả các lớp, lớp Queue quan trọng hơn, nó giúp tính toán song song và đa chương trình. Khái niệm này có thể được hiểu rất dễ dàng bằng ví dụ sau
ĐẦU RA. người1 người2 người3 Traceback (cuộc gọi gần đây nhất cuối cùng) File “C:/Users/Ashu Lakhwan/PycharmProjects/Hello/Queue.py”, line 78, in Chuôi in. get_nowait()) Tập tin “C. \Python\lib\hàng đợi. py”, dòng 198, trong get_nowait tự trở về. nhận (khối = Sai) Tập tin “C. \Python\lib\hàng đợi. py”, dòng 167, trong get tăng trống _xếp hàng. Trống rỗng Làm việc với một bộ sưu tập. Lớp deque
Ví dụ về bộ sưu tập. lớp deque như sau
ĐẦU RA deque([‘Thứ Hai’, ‘Thứ Ba’, ‘Thứ Tư’]) Thứ hai Thứ ba Thứ tư Traceback (cuộc gọi gần đây nhất cuối cùng) File “C:/Users/Ashu Lakhwan/PycharmProjects/Hello/Queue.py”, line 101, in xếp hàng. popleft() Chỉ mụcLỗi. pop từ một deque trống Làm việc với đa xử lý. Lớp xếp hàngLớp này có thể được sử dụng để xử lý song song các mục được xếp hàng đợi bởi các công nhân đa dòng. đa xử lý. Lớp hàng đợi chia sẻ dữ liệu giữa nhiều quy trình và lưu trữ thông tin của bất kỳ đối tượng nào có thể được chọn trong khi xử lý các mục. Ví dụ
ĐẦU RA < đa xử lý. xếp hàng. Đối tượng xếp hàng tại 0x000002CA073356A0> Thứ hai Thứ ba Thứ tư Triển khai hàng đợi PythonCó một số cách để triển khai Hàng đợi cho Python. Tuy nhiên, một số phương pháp thường được sử dụng để triển khai hàng đợi trong python bao gồm:
Các phương pháp này đã được thảo luận ở trên trong bài viết này với mỗi chủ đề có một ví dụ riêng. Bạn có thể tham khảo phần trước để hiểu các cách triển khai Hàng đợi Python khác nhau. Làm cách nào để thêm nhiều phần tử trong Python?Trong bài viết này, chúng ta đã thấy cách chúng ta có thể thêm một mục hoặc thành phần vào hàng đợi của mình. Bây giờ, hãy xem cách chúng ta có thể thêm nhiều hơn một phần tử trong Python Thêm một mục trong FIFOqueue ________số 8ĐẦU RA Giá trị được chèn là 0 Giá trị được chèn là 1 Giá trị được chèn là 2 Giá trị được chèn là 3 Giá trị được chèn là 4 Trong ví dụ trên, phương thức put() sẽ đưa các phần tử từ 0 đến 5 vào hàng đợi Ví dụ về hàng đợi nhập trước xuất trướcFIFO có nghĩa là phần tử được chèn trước sẽ là phần tử đầu tiên bị xóa khỏi danh sách. Để triển khai hàng đợi FIFO, chúng tôi được yêu cầu nhập mô-đun queue() trong Python. Hãy cho chúng tôi xem một ví dụ về triển khai hàng đợi FIFO để thêm một mục
ĐẦU RA Phần tử bị xóa khỏi hàng đợi là 10 Trong ví dụ trên, phương thức get() được sử dụng để xóa phần tử khỏi hàng đợi Ví dụ hàng đợi vào sau ra trướcLIFO có nghĩa là phần tử được nhập cuối cùng sẽ là phần tử đầu tiên được bật ra hoặc xóa. Để triển khai, LIFO, chúng tôi được yêu cầu nhập mô-đun hàng đợi và sử dụng phương thức LifoQueue() trong Python Hãy cho chúng tôi hiểu cách chúng tôi có thể triển khai việc thêm một phần tử vào hàng đợi LIFO 0ĐẦU RA Mục bị loại bỏ là 5 Phần kết luậnTrong bài viết này, chúng ta đã thảo luận về một số khái niệm hữu ích và quan trọng về Hàng đợi Python và chúng ta cũng đã xem xét cách chúng có thể được triển khai trong các ví dụ. Hàng đợi Python rất giống với Danh sách tiêu chuẩn trong Python, nhưng nó luôn được coi là tốt hơn từ quan điểm hiệu suất. Hàng đợi có sẵn trong Python không?Triển khai sử dụng danh sách. Danh sách là cấu trúc dữ liệu tích hợp sẵn của Python có thể được sử dụng làm hàng đợi .
Hàng đợi có phải là một phần của thư viện chuẩn Python không?Trong Python, chúng ta có thể sử dụng mô-đun queue để tạo hàng đợi các đối tượng. Đây là một phần của thư viện Python chuẩn nên không cần sử dụng pip.
Hàng đợi có phải là một kiểu dữ liệu trong Python không?Hàng đợi trong Python là cấu trúc dữ liệu tuyến tính với phần sau và phần trước, tương tự như ngăn xếp. Nó lưu trữ các mục tuần tự theo cách FIFO (First In First Out). Bạn có thể coi nó như một hàng đợi dịch vụ khách hàng hoạt động trên cơ sở ai đến trước được phục vụ trước.
Danh sách Python có phải là ngăn xếp hoặc hàng đợi không?Danh sách cấu trúc dữ liệu tích hợp sẵn của Python có thể được sử dụng làm ngăn xếp . |