이 문서에서는 스레드란 무엇인가에 대해 주로 설명합니다. 스레드는 운영 체제에서 계산 스케줄링을 수행할 수 있는 가장 작은 단위입니다. 프로세스는 프로세스 내에 포함되며 프로세스 내의 실제 처리 단위입니다. 스레드는 지침의 모음입니다.
A thread는 프로세스의 단일 순차 제어 흐름을 의미하며 여러 스레드가 프로세스에서 동시에 실행될 수 있으며 각 스레드는 서로 다른 작업을 병렬로 실행합니다.
Python은 스레드와 스레딩이라는 두 가지 표준 라이브러리를 통해 스레드를 지원합니다. 스레드는 낮은 수준의 기본 스레드와 간단한 잠금을 제공합니다.
threading 모듈에서 제공하는 다른 메서드:
1.threading.currentThread(): 현재 스레드 변수를 반환합니다.
2.threading.enumerate(): 실행 중인 스레드가 포함된 목록을 반환합니다. 실행이란 스레드가 시작된 후 종료되기 전을 의미하며, 시작 전과 종료 후의 스레드는 제외됩니다.
3.threading.activeCount(): 실행 중인 스레드 수를 반환하며, 이는 len(threading.enumerate())과 동일한 결과를 갖습니다.
사용 메서드 외에도 스레드 모듈은 스레드를 처리하기 위한 Thread 클래스도 제공합니다. Thread 클래스는 다음 메서드를 제공합니다.
1.run(): 스레드 활동을 나타내는 데 사용되는 메서드입니다.
2.start(): 스레드 활동을 시작합니다.
3.join([time]): 스레드가 종료될 때까지 기다립니다. 이는 스레드의 Join() 메소드가 abort(정상적으로 종료하거나 처리되지 않은 예외 발생)를 호출하거나 선택적 시간 초과가 발생할 때까지 호출 스레드를 차단합니다.
4.isAlive(): 스레드가 활성 상태인지 여부를 반환합니다.
5.getName(): 스레드 이름을 반환합니다.
6.setName(): 스레드 이름을 설정합니다.
Threading 모듈을 사용하여 스레드 생성
Threading 모듈을 사용하여 스레드를 생성하고 threading.Thread에서 직접 상속한 다음 __init__ 메서드 및 실행 메서드를 다시 작성합니다.
#!/usr/bin/python # -*- coding: UTF-8 -*- import threading import time exitFlag = 0 class myThread (threading.Thread): #继承父类threading.Thread def __init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.counter = counter def run(self): #把要执行的代码写到run函数里面 线程在创建后会直接运行run函数 print "Starting " + self.name print_time(self.name, self.counter, 5) print "Exiting " + self.name def print_time(threadName, delay, counter): while counter: if exitFlag: (threading.Thread).exit() time.sleep(delay) print "%s: %s" % (threadName, time.ctime(time.time())) counter -= 1 # 创建新线程 thread1 = myThread(1, "Thread-1", 1) thread2 = myThread(2, "Thread-2", 2) # 开启线程 thread1.start() thread2.start() print "Exiting Main Thread"
위 프로그램 실행 결과
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
위 내용은 Python 스레딩 모듈이란 무엇입니까? 3분 안에 스레드 모듈이 무엇인지 알아보세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!