非常教程

Python参考手册

可选操作系统 | Optional Operating System

thread

注意

thread模块已被重命名为_threadPython 3. 2to3工具将自动适应导入将源代码转换为Python 3; 但是,您应该考虑使用高级threading模块。

该模块提供了用于处理多个线程(也称为轻量级进程任务)的低级原语- 多个控制线程共享其全局数据空间。为了同步,提供了简单的锁(也称为互斥锁二进制信号量)。该threading模块提供了构建在该模块之上的更易于使用和更高级的线程化API。

该模块是可选的。它在Windows,Linux,SGI IRIX,Solaris 2.x以及具有POSIX线程(又名“pthread”)实现的系统上受支持。对于缺少thread模块的系统,该dummy_thread模块可用。它复制了该模块的接口,可以用作插入式替换。

它定义了以下常数和函数:

exception thread.error

引发线程特定的错误。

thread.LockType

这是锁定对象的类型。

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

开始一个新的线程并返回它的标识符。该线程使用参数列表args(它必须是一个元组)执行函数函数。可选的kwargs参数指定关键字参数的字典。当函数返回时,该线程静静地退出。当函数以未处理的异常终止时,将打印一个堆栈跟踪,然后该线程退出(但其他线程继续运行)。

thread.interrupt_main()

KeyboardInterrupt在主线程中引发异常。一个子线程可以使用这个函数来中断主线程。

2.3版本的新功能。

thread.exit()

引发SystemExit异常。当未被捕获时,这将导致线程无声地退出。

thread.allocate_lock()

返回一个新的锁定对象。下面描述锁的方法。锁最初是解锁的。

thread.get_ident()

返回当前线程的'线程标识符'。这是一个非零整数。它的价值没有直接的意义; 它的目的是作为一个神奇的cookie用于例如索引线程特定数据的字典。当线程退出并创建另一个线程时,线程标识符可能会被回收。

thread.stack_size([size])

Return the thread stack size used when creating new threads. The optional size argument specifies the stack size to be used for subsequently created threads, and must be 0 (use platform or configured default) or a positive integer value of at least 32,768 (32kB). If size is not specified, 0 is used. If changing the thread stack size is unsupported, the error exception is raised. If the specified stack size is invalid, a ValueError并且堆栈大小未修改。32kB是目前支持的最小堆栈大小值,以保证解释器本身具有足够的堆栈空间。请注意,某些平台可能对堆栈大小的值有特殊限制,例如要求最小堆栈大小> 32kB或需要以系统内存页大小的倍数进行分配 - 有关更多信息,应参考平台文档(4kB页是常见的;对于堆栈大小,使用4096的倍数是没有更具体信息的建议方法)。可用性:Windows,带有POSIX线程的系统。

2.5版本中的新功能。

锁对象具有以下方法:

lock.acquire([waitflag])

如果没有可选的参数,这个方法无条件地获取锁,如果有必要的话,等待它被另一个线程释放(一次只有一个线程可以获得一个锁 - 这是它们存在的原因)。如果存在整数waitflag参数,则该操作取决于其值:如果为零,则只有在可以立即获取而不等待的情况下才会获取锁定,而如果为非零值,则锁定将像以前一样无条件获取。返回值True是否成功获取锁定,False如果不成功。

lock.release()

释放锁定。锁定必须早已获得,但不一定是由同一个线程获取。

lock.locked()

返回锁的状态:True是否已经被某个线程获取,False如果没有。

除了这些方法之外,还可以通过with语句使用锁对象,例如:

import thread

a_lock = thread.allocate_lock()

with a_lock:
    print "a_lock is locked while this executes"

注意事项:

  • 线程奇怪地与中断交互:KeyboardInterrupt异常将被任意线程接收。(当signal模块可用时,中断总是进入主线程。)
  • 调用sys.exit()或引发SystemExit异常等同于调用thread.exit()
  • 无法acquire()在锁上中断方法 - 在KeyboardInterrupt获取锁之后会发生异常。
  • 当主线程退出时,系统定义其他线程是否存活。在使用本地线程实现的SGI IRIX上,它们能够存活下来。在大多数其他系统上,它们在不执行try... finally子句或执行对象析构函数的情况下被终止。
  • 当主线程退出时,它不会执行任何通常的清理(除了try... finally子句被尊重),并且标准I / O文件不会被刷新。

可选操作系统 | Optional Operating System相关

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法