介绍

Thread实例对象的方法
# isAlive(): 返回线程是否活动的。
# getName(): 返回线程名。
# setName(): 设置线程名。 threading模块提供的一些方法:
# threading.currentThread(): 返回当前的线程变量。
# threading.enumerate(): 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
# threading.activeCount(): 返回正在运行的线程数量,与len(threading.enumerate())有相同的结果。
current_thread 获取当前线程对象
getName() 获取当前线程名字
from threading import Thread
from threading import current_thread
import time
# current_thread 获取当前线程对象名字
# getName() 获取当前线程名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
t = Thread(target=task,)
t.start() '''
Thread-1 is running
Thread-1 is done
'''

 

默认名字是Thread-1

getName() 获取当前线程名字,t就是current_thread() 当前线程的对象
from threading import Thread, current_thread
import time
# current_thread 获取当前线程对象名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
t = Thread(target=task,)
t.start() print(t.getName()) # = current_thread().getName() '''
Thread-1 is running
Thread-1
Thread-1 is done
'''

主线程名字默认是MainThread

from threading import Thread, current_thread
import time
# current_thread 获取当前线程对象名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
t = Thread(target=task,)
t.start() print("主线程", current_thread().getName()) # 打印主线程名字 '''
Thread-1 is running
主线程 MainThread
Thread-1 is done
'''
改子线程名字 
setName()
from threading import Thread, current_thread
import time
# current_thread 获取当前线程对象名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
# name 改子线程名字
t = Thread(target=task, name="子线程1")
t.start() # 改子线程名字
t.setName("儿子线程1")
print("主线程", current_thread().getName()) # 打印主线程名字 '''
子线程1 is running
主线程 MainThread
儿子线程1 is done
'''

启动程序瞬间开启子线程

改主线程名字

current_thread.setName()

from threading import Thread, current_thread
import time
# current_thread 获取当前线程对象名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
t = Thread(target=task, name="子线程1")
t.start() current_thread().setName("主线程helo")
print("主线程", current_thread().getName()) '''
子线程1 is running
主线程 主线程helo
子线程1 is done
'''
t.isAlive()
查看子进程是否存活
from threading import Thread, current_thread
import time
# current_thread 获取当前线程对象名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
t = Thread(target=task, name="子线程1")
t.start() # 判断子线程是否存活
print(t.isAlive())
print("主线程") '''
子线程1 is running
True
主线程
子线程1 is done
'''

主线程等待子线程运行完,主线程再执行 join()

from threading import Thread, current_thread
import time
# current_thread 获取当前线程对象名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
t = Thread(target=task, name="子线程1")
t.start()
print(t.isAlive()) t.join()
# 判断子线程是否存活
print("主线程")
print(t.isAlive()) '''
子线程1 is running
True
子线程1 is done
主线程
False
'''
activeCount(): 返回正在运行的线程数量
from threading import Thread, current_thread, active_count
import time
# current_thread 获取当前线程对象名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
t = Thread(target=task, name="子线程1")
t.start() t.join()
print("主线程") # 返回正在运行的线程数量
print(active_count()) '''
子线程1 is running
子线程1 is done
主线程
1
只剩下主线程
'''
enumerate() 返回一个包含正在运行的线程的列表list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
from threading import Thread, current_thread, enumerate
import time
# current_thread 获取当前线程对象名字 def task():
print("%s is running" % current_thread().getName())
time.sleep(2)
print("%s is done" % current_thread().getName()) if __name__ == '__main__':
t = Thread(target=task, name="子线程1")
t.start() print("主线程") # 返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。
print(enumerate()) '''
子线程1 is running
主线程
[<_MainThread(MainThread, started 38668)>, <Thread(子线程1, started 39424)>]
子线程1 is done
'''

python 并发编程 多线程 Thread对象的其他属性或方法的更多相关文章

  1. python 并发编程 多进程 Process对象的其他属性方法 join 方法

    一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一: 在主进程的任务与子进程的任务彼此独立的情况下 ...

  2. python 并发编程 多进程 Process对象的其他属性方法 terminate与is_alive name pid 函数

    进程对象的其他方法一: terminate与is_alive is_alive()  立刻查看的子进程结果 是否存活 from multiprocessing import Process impor ...

  3. python 并发编程 多线程 目录

    线程理论 python 并发编程 多线程 开启线程的两种方式 python 并发编程 多线程与多进程的区别 python 并发编程 多线程 Thread对象的其他属性或方法 python 并发编程 多 ...

  4. 8 并发编程-(线程)-多线程与多进程的区别&Thread对象的其他属性或方法

    1.开启速度  在主进程下开启线程比 开启子进程快 # 1 在 主进程下开启线程 from threading import Thread def work(): print('hello') if ...

  5. 并发编程 - 线程 - 1.开启线程的两种方式/2.进程与线程的区别/3.Thread对象的其他属性或方法/4.守护线程

    1.开启线程的两种方式: 进程,线程: 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合)而线程才是cpu上的执行单位) 1.同一个进程内的多个线程共享该进程内的地址资源 2.创建线 ...

  6. python并发编程&多线程(二)

    前导理论知识见:python并发编程&多线程(一) 一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 官网链 ...

  7. python并发编程&多线程(一)

    本篇理论居多,实际操作见:  python并发编程&多线程(二) 一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程,一 ...

  8. 多线程《四》Thread对象的其他属性和方法

    Thread对象的其他属性或方法 介绍 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. th ...

  9. Python并发编程——多线程与协程

    Pythpn并发编程--多线程与协程 目录 Pythpn并发编程--多线程与协程 1. 进程与线程 1.1 概念上 1.2 多进程与多线程--同时执行多个任务 2. 并发和并行 3. Python多线 ...

随机推荐

  1. nginx upstream和轮询策略

    upstream nginx upstream语法配置 upstream 后面跟服务名 其中包含了,域名,端口 以及权重,可以看到他既支持http协议也支持socket协议的类型,backup意味着该 ...

  2. php和http协议

    http协议:电脑与电脑,网络与网络之间传输需要的一些条件: 比如网线互联,能相互找到ip地址(tcp/ip: b/s结构一定要遵循http协议): 报文都要有报头,要给谁传数据,要传什么数据,传什么 ...

  3. WTL自定义控件:需要的头文件

    这两天自定义了一个Edit控件,继承自CEdit,如下: class CCheckEditEx : public CWindowImpl< CCheckEditEx, CEdit > 需要 ...

  4. SessionState的几种设置

    SessionState:   web Form 网页是基于HTTP的,它们没有状态, 这意味着它们不知道所有的请求是否来自同一台客户端计算机,网页是受到了破坏,以及是否得到了刷新,这样就可能造成信息 ...

  5. 序列模式挖掘--SPADE算法

  6. AtCoder AGC030B Tree Burning

    题目链接 https://atcoder.jp/contests/agc030/tasks/agc030_b 题解 细节好题.. 首先假设第一步往右走,那么可以发现当拐弯的次数一定时路径是唯一的 于是 ...

  7. Codeforces Round #201.C-Alice and Bob

    C. Alice and Bob time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  8. HUD 1166:敌兵布阵(线段树 or 树状数组)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Problem Des ...

  9. CentOS版本禁用Ctrl+Alt+Del重启功能

    1  禁用Ctrl+Alt+Del重启功能(不重启系统的前提条件) 1.1  CentOS 6 ##查看/etc/inittab确认Ctrl+Alt+Del相关配置文件 cat /etc/initta ...

  10. 如何将JS中object转换为字符串

    var obj = JSON.parse(str); //由JSON字符串转换为JSON对象 var last=obj.toJSONString(); //将JSON对象转化为JSON字符 或者 va ...