📊
Python Docs
  • Стандартная библиотека Python
  • Общее описание
    • Введение
    • Оглавление
    • Содержание по порядку
    • Содержание по алфавиту
  • Встроенные объекты
    • Встроенные функции
      • abs ()
      • open ()
    • Встроенные типы
    • Встроенные исключения
  • Модули стандартной библиотеки
    • Обработка текста
      • string
      • re
        • Синтаксис регулярных выражений
        • Составляющие модуля
          • re.match ()
        • Объекты шаблона Pattern
        • Объекты совпадения Match
        • Примеры регулярных выражений
      • difflib
      • textwrap
      • unicodedata
      • stringprep
      • readline
      • rlcompleter
    • Двоичные данные
      • struct
        • struct.error
        • struct.pack ()
        • struct.pack_into ()
        • struct.unpack ()
        • struct.unpack_from ()
        • struct.iter_unpack ()
        • struct.calcsize ()
        • struct.Struct
        • struct.Struct.pack ()
        • struct.Struct.pack_into ()
        • struct.Struct.unpack ()
        • struct.Struct.unpack_from ()
        • struct.Struct.iter_unpack ()
        • struct.Struct.format
        • struct.Struct.size
      • codecs
    • Специальные типы данных
      • datetime
      • calendar
        • calendar.Calendar
          • Calendar.timegm ()
        • calendar.TextCalendar
        • calendar.HTMLCalendar
        • calendar.LocaleTextCalendar
        • calendar.LocaleHTMLCalendar
        • Функции calendar
      • collections
      • collections.abc
      • heapq
      • bisect
      • array
      • weakref
      • types
      • copy
      • pprint
      • reprlib
      • enum
        • Содержание модуля
          • enum.IntEnum
        • Создание Enum
    • Математические модули
      • numbers
      • math
      • cmath
      • decimal
      • fractions
      • random
      • statistics
    • Функциональные программные модули
      • itertools
      • functools
        • functools.cache()
        • functools.cached_property()
        • functools.cmp_to_key()
        • functools.lru_cache()
        • functools.total_ordering
        • functools.partial()
        • functools.partialmethod()
        • functools.reduce()
        • functools.singledispatch
        • functools.singledispatchmethod()
        • functools.update_wrapper()
        • functools.wraps()
        • Объекты partial
      • operator
    • Доступ к файлам и папкам
      • pathlib
      • os.path
        • os.path.abspath ()
        • os.path.basename ()
        • os.path.dirname ()
        • os.path.exists ()
        • os.path.expanduser ()
        • os.path.expandvars ()
        • os.path.getsize ()
        • os.path.isfile ()
        • os.path.isdir ()
        • os.path.islink ()
        • os.path.join ()
        • os.path.normcase ()
        • os.path.normpath ()
        • os.path.realpath ()
        • os.path.split ()
        • os.path.splitext ()
      • fileinput
      • stat
      • filecmp
      • tempfile
      • glob
        • glob.glob ()
      • fnmatch
        • fnmatch.fnmatch ()
        • fnmatch.fnmatchcase ()
        • fnmatch.filter ()
        • fnmatch.translate ()
      • linecache
      • shutil
        • shutil.rmtree ()
        • shutil.chown ()
    • Хранение данных
      • pickle
        • HIGHEST_PROTOCOL
        • DEFAULT_PROTOCOL
        • dump ()
        • dumps ()
        • load ()
        • loads ()
        • PickleError
        • PicklingError
        • UnpicklingError
      • copyreg
      • shelve
      • marshal
      • dbm
      • sqlite3
    • Сжатие и архивирование данных
      • zlib
      • gzip
      • bz2
      • lzma
      • zipfile
      • tarfile
    • Форматы файлов
      • csv
      • configparser
      • netrc
      • xdrlib
      • plistlib
    • Криптографические службы
      • hashlib
      • hmac
      • secrets
    • Общие службы операционной системы
      • os
        • os.error
        • os.name ()
        • Параметры процесса
          • os.environ
          • os.fsencode ()
          • os.fsdecode ()
          • os.PathLike
          • os.getenv ()
          • os.getenvb ()
          • os.getpid ()
          • os.getppid ()
          • os.putenv ()
          • os.uname ()
          • os.unsetenv ()
        • Создание файлового объекта
          • os.fdopen ()
        • Операции с файловыми дескрипторами
          • os.close ()
          • os.dup2 ()
          • os.fstat ()
          • os.fsync ()
          • os.isatty ()
          • os.lseek ()
          • os.SEEK_SET
          • os.SEEK_CUR
          • os.SEEK_END
          • os.open ()
          • os.openpty ()
          • os.pipe ()
          • os.read ()
          • os.write ()
        • Файлы и директории
          • os.chdir ()
          • os.chmod ()
          • os.chown ()
          • os.getcwd ()
          • os.listdir ()
          • os.lstat ()
          • os.mkfifo ()
          • os.remove ()
          • os.rename ()
          • os.replace ()
          • os.rmdir ()
          • os.scandir ()
          • os.stat ()
          • os.stat_result
          • os.supports_dir_fd
          • os.supports_fd
          • os.supports_follow_symlinks
          • os.unlink ()
          • os.walk ()
        • Управление процессами
          • os.execl ()
          • os.execle ()
          • os.execlp ()
          • os.execlpe ()
          • os.execv ()
          • os.execve ()
          • os.execvp ()
          • os.execvpe ()
          • os._exit ()
          • os.fork ()
          • os.kill ()
          • os.popen ()
          • os.spawnl ()
          • os.P_NOWAIT
          • os.startfile ()
          • os.system ()
          • os.wait ()
          • os.waitpid ()
          • os.waitstatus_to_exitcode ()
          • os.WNOHANG
        • Разные службы ОС
          • os.curdir
          • os.pardir
          • os.sep
          • os.altsep
          • os.pathsep
          • os.linesep
      • io
        • Высокоуровневый интерфейс модуля
          • io.DEFAULT_BUFFER_SIZE
        • io.IOBase
          • io.IOBase.close ()
          • io.IOBase.fileno ()
          • io.IOBase.flush ()
          • io.IOBase.isatty ()
          • io.IOBase.readline ()
          • io.IOBase.readlines ()
          • io.IOBase.seek ()
          • io.IOBase.writelines ()
        • io.RawIOBase
          • io.RawIOBase.read ()
          • io.RawIOBase.readall ()
          • io.RawIOBase.readinto ()
          • io.RawIOBase.write ()
        • io.BufferedIOBase
          • io.BufferedIOBase.read ()
          • io.BufferedIOBase.write ()
        • io.FileIO
        • io.BytesIO
          • io.BytesIO.getvalue ()
        • io.BufferedReader
          • io.BufferedReader.read ()
        • io.BufferedWriter
          • io.BufferedWriter.flush ()
          • io.BufferedWriter.write ()
        • io.BufferedRandom
        • io.BufferedRWPair
        • io.TextIOBase
          • io.TextIOBase.read ()
          • io.TextIOBase.readline ()
          • io.TextIOBase.seek ()
          • io.TextIOBase.tell ()
          • io.TextIOBase.write ()
        • io.TextIOWrapper
        • io.StringIO
          • io.StringIO.getvalue ()
      • time
        • Функции time
          • time.asctime ()
          • time.ctime ()
          • time.gmtime ()
          • time.localtime ()
          • time.mktime ()
          • time.sleep ()
          • time.strftime ()
          • time.strptime ()
          • time.struct_time
          • time.time ()
        • Константы идентификатора часов
        • Константы часового пояса
      • argparse
      • getopt
      • logging
      • logging.config
      • logging.handlers
      • getpass
      • curses
      • curses.textpad
      • curses.ascii
      • curses.panel
      • platform
      • errno
      • ctypes
    • Параллельное выполнение
      • threading
        • Объекты Thread
        • Объекты Lock
        • Объекты RLock
        • Объекты Condition
        • Объекты Semaphore
        • Объекты Event
        • Объекты Timer
        • Объекты Barrier
      • multiprocessing
      • multiprocessing.shared_memory
      • concurrent
      • concurrent.futures
      • subprocess
        • subprocess.PIPE
        • subprocess.Popen
        • Popen.wait ()
        • Popen.communicate ()
        • Popen.args
        • Popen.stdin
        • Popen.stdout
        • Popen.stderr
        • Popen.pid
        • Popen.returncode
        • subprocess.call ()
      • sched
      • queue
        • queue.Queue
        • queue.LifoQueue
        • queue.PriorityQueue
        • queue.SimpleQueue
        • queue.Empty
        • queue.Full
        • Queue.qsize ()
        • Queue.empty ()
        • Queue.full ()
        • Queue.put ()
        • Queue.put_nowait ()
        • Queue.get ()
        • Queue.get_nowait ()
        • Queue.task_done ()
        • Queue.join ()
        • SimpleQueue.qsize ()
        • SimpleQueue.empty ()
        • SimpleQueue.put ()
        • SimpleQueue.put_nowait ()
        • SimpleQueue.get ()
        • SimpleQueue.get_nowait ()
      • _thread
        • _thread.error
        • _thread.LockType
        • _thread.start_new_thread ()
        • _thread.interrupt_main ()
        • _thread.exit ()
        • _thread.allocate_lock ()
        • _thread.get_ident ()
        • _thread.get_native_id ()
        • _thread.stack_size ()
        • _thread.TIMEOUT_MAX
        • lock.acquire ()
        • lock.release ()
        • lock.locked ()
      • _dummy_thread
      • dummy_threading
      • contextvars
    • Сетевое и межпроцессное взаимодействие
      • asyncio
        • Краткий список API
      • socket
        • Семейство сокетов
          • AF_UNIX
          • AF_INET
          • AF_INET6
          • AF_NETLINK
          • AF_TIPC
          • AF_CAN
          • PF_SYSTEM
          • AF_BLUETOOTH
          • AF_ALG
          • AF_VSOCK
          • AF_PACKET
          • AF_QIPCRTR
          • IPPROTO_UDPLITE
        • Исключения сокетов
          • socket.error
          • socket.herror
          • socket.gaierror
          • socket.timeout
        • Константы сокетов
          • socket.AF_UNIX
          • socket.AF_INET
          • socket.AF_INET6
          • socket.SOCK_STREAM
          • socket.SOCK_DGRAM
          • socket.SOCK_RAW
          • socket.SOCK_NONBLOCK
          • socket.SOCK_CLOEXEC
          • socket.AF_CAN
          • socket.CAN_BCM
          • socket.CAN_ISOTP
          • socket.CAN_J1939
          • socket.AF_PACKET
          • socket.AF_RDS
        • Функции сокетов
          • socket.socket ()
          • socket.create_connection ()
          • socket.fromfd ()
          • socket.close ()
          • socket.getaddrinfo ()
          • socket.getfqdn ()
          • socket.gethostbyname ()
          • socket.gethostbyname_ex ()
          • socket.gethostname ()
          • socket.gethostbyaddr ()
          • socket.getnameinfo ()
          • socket.getprotobyname ()
          • socket.getservbyname ()
          • socket.getservbyport ()
          • socket.ntohl ()
          • socket.htonl ()
          • socket.getdefaulttimeout ()
          • socket.setdefaulttimeout ()
        • Объекты сокетов
          • socket.accept ()
          • socket.bind ()
          • socket.close ()
          • socket.connect ()
          • socket.fileno ()
          • socket.getpeername ()
          • socket.listen ()
          • socket.makefile ()
          • socket.recv ()
          • socket.send ()
          • socket.sendall ()
          • socket.setblocking ()
          • socket.settimeout ()
          • socket.shutdown ()
          • socket.type
      • ssl
      • select
        • Атрибуты модуля
          • select.select ()
        • Объекты опроса devpoll
        • Объекты epoll
        • Объекты опроса poll
        • Объекты kqueue
        • Объекты kevent
      • selectors
      • asyncore
      • asynchat
      • signal
        • Константы модуля signal
          • signal.SIG_DFL
          • signal.SIG_IGN
          • signal.SIGABRT
          • signal.SIGALRM
          • signal.SIGBREAK
          • signal.SIGCHLD
          • signal.SIGFPE
          • signal.SIGILL
          • signal.SIGINT
          • signal.SIGPIPE
          • signal.SIGSEGV
          • signal.SIGTERM
          • signal.SIGUSR1
          • signal.SIGUSR2
          • signal.CTRL_C_EVENT
          • signal.CTRL_BREAK_EVENT
          • signal.SIG_BLOCK
          • signal.SIG_UNBLOCK
          • signal.SIG_SETMASK
        • Исключения модуля signal
        • Функции модуля signal
          • signal.alarm ()
          • signal.getsignal ()
          • signal.strsignal ()
          • signal.valid_signals ()
          • signal.pause ()
          • signal.raise_signal ()
          • signal.pthread_kill ()
          • signal.pthread_sigmask ()
          • signal.signal ()
          • signal.sigpending ()
          • signal.sigwait ()
          • signal.sigwaitinfo ()
          • signal.sigtimedwait ()
      • mmap
    • Обработка интернет данных
      • email
      • json
      • mailcap
      • mailbox
      • mimetypes
      • base64
      • binhex
      • binascii
      • quopri
      • uu
    • Обработка упорядоченной разметки
      • html
      • html.parser
      • html.entities
      • Модули обработки XML
      • xml.etree.ElementTree
      • xml.dom
      • xml.dom.minidom
      • xml.dom.pulldom
      • xml.sax
      • xml.sax.handler
      • xml.sax.saxutils
      • xml.sax.xmlreader
      • xml.parsers.expat
    • Интернет протоколы
      • webbrowser
      • cgi
      • cgitb
      • wsgiref
      • urllib
      • urllib.request
      • urllib.response
      • urllib.parse
      • urllib.error
      • urllib.robotparser
      • http
      • http.client
      • ftplib
      • poplib
      • imaplib
      • nntplib
      • smtplib
      • smtpd
      • telnetlib
      • uuid
      • socketserver
      • http.server
      • http.cookies
      • http.cookiejar
      • xmlrpc
      • xmlrpc.client
      • xmlrpc.server
      • ipaddress
    • Мультимедиа службы
      • audioop
      • aifc
      • sunau
      • wave
      • chunk
      • colorsys
      • imghdr
      • sndhdr
      • ossaudiodev
    • Интернационализация
      • gettext
      • locale
    • Программные фреймворки
      • turtle
      • cmd
      • shlex
    • Графические интерфейсы пользователя с Tk
      • tkinter
      • tkinter.ttk
      • tkinter.tix
      • tkinter.scrolledtext
      • IDLE
      • Другие пакеты графических интерфейсов
    • Инструменты разработки
      • typing
      • pydoc
      • doctest
      • unittest
      • unittest.mock
      • 2to3
      • test
      • test.support
      • test.support.script_helper
    • Отладка и профилирование
      • Таблица событий аудита
      • bdb
      • faulthandler
      • pdb
      • Профилировщики Python
      • timeit
      • trace
      • tracemalloc
    • Упаковка и распространение программ
      • distutils
      • ensurepip
      • venv
      • zipapp
    • Службы среды выполнения Python
      • sys
        • sys.argv
        • sys.executable
        • sys.exit ()
        • sys.getdefaultencoding ()
        • sys.getfilesystemencoding ()
        • sys.path
        • sys.platform
        • sys.setcheckinterval ()
        • sys.setswitchinterval ()
        • sys.stdin, sys.stdout, sys.stderr
        • sys.unraisablehook ()
      • sysconfig
      • builtins
      • __main__
      • warnings
      • dataclasses
      • contextlib
      • abc
      • atexit
      • traceback
      • __future__
      • gc
      • inspect
      • site
    • Пользовательские интерпретаторы Python
      • code
      • codeop
    • Импортирование модулей
      • zipimport
      • pkgutil
      • modulefinder
      • runpy
      • importlib
      • importlib.metadata
    • Службы языка Python
      • parser
      • ast
      • symtable
      • symbol
      • token
      • keyword
      • tokenize
      • tabnanny
      • pyclbr
      • py_compile
      • compileall
      • dis
      • pickletools
    • Разные службы
      • formatter
    • Специальные службы MS Windows
      • msilib
      • msvcrt
        • msvcrt.kbhit ()
        • msvcrt.getch ()
        • msvcrt.getche ()
        • msvcrt.putch ()
      • winreg
      • winsound
    • Специальные службы Unix
      • posix
      • pwd
      • spwd
      • grp
      • crypt
      • termios
      • tty
      • pty
      • fcntl
      • pipes
      • resource
      • nis
      • syslog
    • Замененные модули
      • optparse
      • imp
    • Недокументированные модули
      • Специфичные модули платформы
Powered by GitBook
On this page

Was this helpful?

  1. Модули стандартной библиотеки
  2. Параллельное выполнение
  3. threading

Объекты Thread

Класс Thread представляет действие, которое выполняется в отдельном потоке управления. Есть два способа указать действие: передав вызываемый объект в конструктор или переопределив метод run () в подклассе. Никакие другие методы (кроме конструктора) не должны переопределяться в подклассе. Другими словами, переопределяйте только методы init () и run () этого класса.

После того, как объект потока создан, его деятельность должна быть запущена путем вызова метода start () потока. Это вызывает метод run () в отдельном потоке управления.

Как только активность потока запущена, он считается «живым». Он перестает быть активным, либо обычно когда его метод run () завершается, либо при возникновении необработанного исключения. Метод is_alive () проверяет, жив ли поток.

Другие потоки могут вызывать метод потока join (). Это блокирует вызывающий поток до тех пор, пока не завершится поток, чей метод join () вызван.

У потока есть название. Название может быть передано в конструктор и прочитано или изменено с помощью атрибута name.

Если метод run () вызывает исключение, для его обработки вызывается threading.excepthook (). По умолчанию threading.excepthook () молча игнорирует SystemExit.

Поток можно пометить как «демона-поток». Значение этого флага заключается в том, что вся программа Python завершается, когда остаются только потоки демона. Начальное значение наследуется от создающего потока. Флаг может быть установлен через свойство демона или аргумент конструктора демона.

Потоки демона внезапно останавливаются при завершении работы. Их ресурсы (такие как открытые файлы, транзакции базы данных и т. д.) могут быть освобождены неправильно. Если вы хотите, чтобы ваши потоки корректно останавливались, сделайте их недемоническими и используйте подходящий механизм сигнализации, такой как Event.

Есть объект «основной поток»; это соответствует начальному потоку управления в программе Python. Это не поток демона.

Есть вероятность того, что будут созданы «объекты фиктивного потока». Это объекты потоков, соответствующие «чужеродным потокам», которые представляют собой потоки управления, запускаемые вне модуля потоковой передачи, например непосредственно из кода C. Объекты фиктивного потока имеют ограниченную функциональность; они всегда считаются живыми и демоническими, и их нельзя объединить join (). Они никогда не удаляются, так как невозможно обнаружить завершение чужих потоков.

PreviousthreadingNextОбъекты Lock

Last updated 4 years ago

Was this helpful?