Chạy một số luồng tương tự như chạy một số chương trình khác nhau đồng thời, nhưng với các lợi ích sau -
Nội dung chính ShowShow
- Bắt đầu một chủ đề mới
- Mô -đun luồng
- Tạo luồng bằng mô -đun luồng
- Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
- Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
- Làm thế nào để bạn viết nhiều chủ đề trong Python?
- Bạn có thể chạy bao nhiêu chủ đề cùng một lúc?
- Nhiều luồng có thể chạy cùng một lúc không?
- Các chủ đề Python có thể chạy trên nhiều lõi không?
Nhiều luồng trong một quy trình chia sẻ cùng một không gian dữ liệu với luồng chính và do đó có thể chia sẻ thông tin hoặc liên lạc với nhau dễ dàng hơn so với nếu chúng là các quy trình riêng biệt.
Các chủ đề đôi khi được gọi là các quy trình trọng lượng nhẹ và chúng không yêu cầu nhiều chi phí bộ nhớ; Chúng rẻ hơn các quá trình.
Một chủ đề có một bắt đầu, một chuỗi thực thi và một kết luận. Nó có một con trỏ hướng dẫn theo dõi vị trí trong bối cảnh của nó hiện đang chạy.
Nó có thể được chứng minh trước [bị gián đoạn]
Nó có thể tạm thời bị tạm dừng [còn được gọi là ngủ] trong khi các chủ đề khác đang chạy - điều này được gọi là năng suất.
Bắt đầu một chủ đề mới
Mô -đun luồng
thread.start_new_thread [ function, args[, kwargs] ]
Tạo luồng bằng mô -đun luồng
Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
Làm thế nào để bạn viết nhiều chủ đề trong Python?
Bạn có thể chạy bao nhiêu chủ đề cùng một lúc?
#!/usr/bin/python import thread import time # Define a function for the thread def print_time[ threadName, delay]: count = 0 while count < 5: time.sleep[delay] count += 1 print "%s: %s" % [ threadName, time.ctime[time.time[]] ] # Create two threads as follows try: thread.start_new_thread[ print_time, ["Thread-1", 2, ] ] thread.start_new_thread[ print_time, ["Thread-2", 4, ] ] except: print "Error: unable to start thread" while 1: pass
Nhiều luồng có thể chạy cùng một lúc không?
Thread-1: Thu Jan 22 15:42:17 2009 Thread-1: Thu Jan 22 15:42:19 2009 Thread-2: Thu Jan 22 15:42:19 2009 Thread-1: Thu Jan 22 15:42:21 2009 Thread-2: Thu Jan 22 15:42:23 2009 Thread-1: Thu Jan 22 15:42:23 2009 Thread-1: Thu Jan 22 15:42:25 2009 Thread-2: Thu Jan 22 15:42:27 2009 Thread-2: Thu Jan 22 15:42:31 2009 Thread-2: Thu Jan 22 15:42:35 2009
Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
Mô -đun luồng
Tạo luồng bằng mô -đun luồng
Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
Làm thế nào để bạn viết nhiều chủ đề trong Python? − Returns the number of thread objects that are active.
Bạn có thể chạy bao nhiêu chủ đề cùng một lúc? − Returns the number of thread objects in the caller's thread control.
Nhiều luồng có thể chạy cùng một lúc không? − Returns a list of all thread objects that are currently active.
Các chủ đề Python có thể chạy trên nhiều lõi không?
Nhiều luồng trong một quy trình chia sẻ cùng một không gian dữ liệu với luồng chính và do đó có thể chia sẻ thông tin hoặc liên lạc với nhau dễ dàng hơn so với nếu chúng là các quy trình riêng biệt. − The run[] method is the entry point for a thread.
Các chủ đề đôi khi được gọi là các quy trình trọng lượng nhẹ và chúng không yêu cầu nhiều chi phí bộ nhớ; Chúng rẻ hơn các quá trình. − The start[] method starts a thread by calling the run method.
Một chủ đề có một bắt đầu, một chuỗi thực thi và một kết luận. Nó có một con trỏ hướng dẫn theo dõi vị trí trong bối cảnh của nó hiện đang chạy. − The join[] waits for threads to terminate.
Nó có thể được chứng minh trước [bị gián đoạn] − The isAlive[] method checks whether a thread is still executing.
Nó có thể tạm thời bị tạm dừng [còn được gọi là ngủ] trong khi các chủ đề khác đang chạy - điều này được gọi là năng suất. − The getName[] method returns the name of a thread.
Để sinh ra một luồng khác, bạn cần gọi phương thức sau có sẵn trong mô -đun luồng - − The setName[] method sets the name of a thread.
Tạo luồng bằng mô -đun luồng
Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
Làm thế nào để bạn viết nhiều chủ đề trong Python?
Bạn có thể chạy bao nhiêu chủ đề cùng một lúc?
Nhiều luồng có thể chạy cùng một lúc không?
Các chủ đề Python có thể chạy trên nhiều lõi không?
Bạn có thể chạy bao nhiêu chủ đề cùng một lúc?
#!/usr/bin/python import threading import time exitFlag = 0 class myThread [threading.Thread]: def __init__[self, threadID, name, counter]: threading.Thread.__init__[self] self.threadID = threadID self.name = name self.counter = counter def run[self]: print "Starting " + self.name print_time[self.name, 5, self.counter] print "Exiting " + self.name def print_time[threadName, counter, delay]: while counter: if exitFlag: threadName.exit[] time.sleep[delay] print "%s: %s" % [threadName, time.ctime[time.time[]]] counter -= 1 # Create new threads thread1 = myThread[1, "Thread-1", 1] thread2 = myThread[2, "Thread-2", 2] # Start new Threads thread1.start[] thread2.start[] print "Exiting Main Thread"
Nhiều luồng có thể chạy cùng một lúc không?
Starting Thread-1 Starting Thread-2 Exiting Main Thread Thread-1: Thu Mar 21 09:10:03 2013 Thread-1: Thu Mar 21 09:10:04 2013 Thread-2: Thu Mar 21 09:10:04 2013 Thread-1: Thu Mar 21 09:10:05 2013 Thread-1: Thu Mar 21 09:10:06 2013 Thread-2: Thu Mar 21 09:10:06 2013 Thread-1: Thu Mar 21 09:10:07 2013 Exiting Thread-1 Thread-2: Thu Mar 21 09:10:08 2013 Thread-2: Thu Mar 21 09:10:10 2013 Thread-2: Thu Mar 21 09:10:12 2013 Exiting Thread-2
Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
Mô -đun luồng
Tạo luồng bằng mô -đun luồng
Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
Làm thế nào để bạn viết nhiều chủ đề trong Python?
Thí dụ
#!/usr/bin/python import threading import time class myThread [threading.Thread]: def __init__[self, threadID, name, counter]: threading.Thread.__init__[self] self.threadID = threadID self.name = name self.counter = counter def run[self]: print "Starting " + self.name # Get lock to synchronize threads threadLock.acquire[] print_time[self.name, self.counter, 3] # Free lock to release next thread threadLock.release[] def print_time[threadName, delay, counter]: while counter: time.sleep[delay] print "%s: %s" % [threadName, time.ctime[time.time[]]] counter -= 1 threadLock = threading.Lock[] threads = [] # Create new threads thread1 = myThread[1, "Thread-1", 1] thread2 = myThread[2, "Thread-2", 2] # Start new Threads thread1.start[] thread2.start[] # Add threads to thread list threads.append[thread1] threads.append[thread2] # Wait for all threads to complete for t in threads: t.join[] print "Exiting Main Thread"
Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
Starting Thread-1 Starting Thread-2 Thread-1: Thu Mar 21 09:11:28 2013 Thread-1: Thu Mar 21 09:11:29 2013 Thread-1: Thu Mar 21 09:11:30 2013 Thread-2: Thu Mar 21 09:11:32 2013 Thread-2: Thu Mar 21 09:11:34 2013 Thread-2: Thu Mar 21 09:11:36 2013 Exiting Main Thread
Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
Mô -đun luồng
Mô-đun luồng mới hơn được bao gồm với Python 2.4 cung cấp hỗ trợ cấp cao, mạnh mẽ hơn nhiều cho các luồng so với mô-đun luồng được thảo luận trong phần trước. − The get[] removes and returns an item from the queue. − The get[] removes and returns an item from the queue.
Mô -đun luồng hiển thị tất cả các phương thức của mô -đun luồng và cung cấp một số phương thức bổ sung - − The put adds item to a queue. − The put adds item to a queue.
Chủ đề.ActiveCount [] - Trả về số lượng đối tượng luồng đang hoạt động. − The qsize[] returns the number of items that are currently in the queue. − The qsize[] returns the number of items that are currently in the queue.
Chủ đề.CurrentThread [] - Trả về số lượng đối tượng luồng trong điều khiển luồng của người gọi. − The empty[ ] returns True if queue is empty; otherwise, False. − The empty[ ] returns True if queue is empty; otherwise, False.
Chủ đề.enumerate [] - Trả về danh sách tất cả các đối tượng luồng hiện đang hoạt động. − the full[] returns True if queue is full; otherwise, False. − the full[] returns True if queue is full; otherwise, False.
Thí dụ
#!/usr/bin/python import Queue import threading import time exitFlag = 0 class myThread [threading.Thread]: def __init__[self, threadID, name, q]: threading.Thread.__init__[self] self.threadID = threadID self.name = name self.q = q def run[self]: print "Starting " + self.name process_data[self.name, self.q] print "Exiting " + self.name def process_data[threadName, q]: while not exitFlag: queueLock.acquire[] if not workQueue.empty[]: data = q.get[] queueLock.release[] print "%s processing %s" % [threadName, data] else: queueLock.release[] time.sleep[1] threadList = ["Thread-1", "Thread-2", "Thread-3"] nameList = ["One", "Two", "Three", "Four", "Five"] queueLock = threading.Lock[] workQueue = Queue.Queue[10] threads = [] threadID = 1 # Create new threads for tName in threadList: thread = myThread[threadID, tName, workQueue] thread.start[] threads.append[thread] threadID += 1 # Fill the queue queueLock.acquire[] for word in nameList: workQueue.put[word] queueLock.release[] # Wait for queue to empty while not workQueue.empty[]: pass # Notify threads it's time to exit exitFlag = 1 # Wait for all threads to complete for t in threads: t.join[] print "Exiting Main Thread"
Khi mã trên được thực thi, nó sẽ tạo ra kết quả sau -
Starting Thread-1 Starting Thread-2 Starting Thread-3 Thread-1 processing One Thread-2 processing Two Thread-3 processing Three Thread-1 processing Four Thread-2 processing Five Exiting Thread-3 Exiting Thread-1 Exiting Thread-2 Exiting Main Thread
Mặc dù nó rất hiệu quả đối với luồng cấp thấp, nhưng mô-đun luồng rất hạn chế so với mô-đun luồng mới hơn.
Mô -đun luồng.
Mô-đun luồng mới hơn được bao gồm với Python 2.4 cung cấp hỗ trợ cấp cao, mạnh mẽ hơn nhiều cho các luồng so với mô-đun luồng được thảo luận trong phần trước. − The get[] removes and returns an item from the queue.
Mô -đun luồng hiển thị tất cả các phương thức của mô -đun luồng và cung cấp một số phương thức bổ sung - − The put adds item to a queue.
Chủ đề.ActiveCount [] - Trả về số lượng đối tượng luồng đang hoạt động. − The qsize[] returns the number of items that are currently in the queue.
Chủ đề.CurrentThread [] - Trả về số lượng đối tượng luồng trong điều khiển luồng của người gọi. − The empty[ ] returns True if queue is empty; otherwise, False.
Chủ đề.enumerate [] - Trả về danh sách tất cả các đối tượng luồng hiện đang hoạt động. − the full[] returns True if queue is full; otherwise, False.
Làm thế nào để bạn viết nhiều chủ đề trong Python?one thread will be executed at a time. By only allowing a single thread to be used every time we run a Python process, this ensures that only one thread can access a particular resource at a time and it also prevents the use of objects and bytecodes at once.
Để sử dụng đa luồng, chúng ta cần nhập mô -đun luồng trong chương trình Python ...
nhập luồng ..each thread in the process can run concurrently on a separate processor, resulting in parallel execution, which is true simultaneous execution.
DEF PRINT_HELLO [n]:.
In ["Xin chào, bạn bao nhiêu tuổi", n].