Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Khởi động luồng mới trong Python


Để tạo ra một luồng khác, bạn cần gọi phương thức sau có sẵn trong mô-đun thread:

thread.start_new_thread(function, args[, kwargs])

Lời gọi phương thức này cho phép cách nhanh chóng, hiệu quả để tạo luồng mới trên cả Linux và Windows.

Lời gọi phương thức trả về ngay lập tức và luồng con bắt đầu và gọi function với danh sách args được truyền. Khi function trả về, luồng kết thúc.

Ở đây, args là một tuple các đối số; sử dụng tuple rỗng để gọi hàm không truyền đối số. kwargs là từ điển tùy chọn của các đối số từ khóa.

Ví dụ

#!/usr/bin/python
import thread
import time

# Định nghĩa hàm cho luồng
def print_time(threadName, delay):
    count = 0
    while count < 5:
        time.sleep(delay)
        count += 1
        print "%s: %s" % (threadName, time.ctime(time.time()))

# Tạo hai luồng như sau
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

Đầu ra

Khi mã trên được thực thi, nó cho kết quả sau:

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ù rất hiệu quả cho đa luồng cấp thấp, nhưng mô-đun thread rất hạn chế so với mô-đun threading mới hơn.