1.主线程和次线程

若主线程结束则次线程也会结束

如何避免主线程先结束:

结尾处加上

while True:
pass

e.g.

import win32api     #引用系统函数
import _thread #多线程 def show(i):
win32api.MessageBox(0, "Hello", "Me", 0) for i in range(4):
_thread.start_new_thread(show,(i,))#把函数当作参数传递,()元组,用于传递参数 while True:
pass

但是这样的操作无法终止程序

threading模块,基于类实现多线程

import threading
import win32api class Mythread(threading.Thread):
def run(self): #run重写
win32api.MessageBox(0,"Hello","Me",0) for i in range(5):
t = Mythread() #初始化
t.start() #开启 while True:
pass

将最后while True替换为join方法:

import win32api     #引用系统函数
import threading #多线程 def show():
win32api.MessageBox(0, "你的账户很危险", "from Alipay", 0) list=[]
for i in range(4):
t = threading.Thread(target=show)
t.start()#把函数当作参数传递,()元组,用于传递参数
list.append(t) for i in list:
i.join()

类线程的两种风格

import threading
import time
import win32api class Mythread(threading.Thread): #继承threading.Thread
def run(self): #run重写
win32api.MessageBox(0,"Hello","max",0) """
for i in range(5):
t = Mythread() #初始化
t.start() #开启
t.join() #主线程等待线程t执行完成,顺序风格
"""
mythread = [] #集合list
for i in range(5):
t = Mythread()
t.start()
mythread.append(t) #加入线程集合 for mythd in mythread: #mythd是一个线程
mythd.join() #主线程等待线程t执行完成,不需要阻塞 print("gameover")

尹成python视频 学习

呀哈哈

2019-02-02 Python学习之多线程的更多相关文章

  1. 2019/3/7 Java学习之多线程(基础)

    Java学习之多线程 讲到线程,就必须要懂得进程,进程是相当于一个程序的开始到结束,而线程是依赖于进程的,没有进程,就没有线程.线程也分主线程和子线程,当在主线程开启子线程时,主线程结束,而子线程还可 ...

  2. python学习笔记- 多线程(1)

    学习多线程首先先要理解线程和进程的关系. 进程 计算机的程序是储存在磁盘中的可执行的二进制文件,执行时把这些二进制文件加载到内存中,操作系统调用并交给处理器执行对应操作,进程是程序的一次执行过程,这是 ...

  3. Python学习 :多线程 --- 锁

    多线程 什么是锁? - 锁通常被用来实现对共享资源的同步访问. - 为每一个共享资源创建一个Lock对象,当你需要访问该资源时,调用acquire方法来获取锁对象(如果其它线程已经获得了该锁,则当前线 ...

  4. Python学习 :多线程

    多线程 什么是线程? - 能独立运行的基本单位——线程(Threads). - 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位. - 一条线程指的是进程中一个单一 ...

  5. python学习之多线程多进程

    python基础 进程&线程 进程是一组资源的集合,运行一个系统就是打开了一个进程,如果同时打开了两个记事本就是开启了两个进程,进程是一个笼统的概念,进程中由线程干活工作,由进程统一管理 一个 ...

  6. python学习之多线程(二)

    使用multiprocessing 使用multiprocessing.dummy 单使用multiprocessing模块的指的是多进程,使用multiprocessing.dummy则表示使用的是 ...

  7. python学习之多线程(一)

    引入线程包或者命名空间import threading 一:建立一个简单的线程程序 import time, threading def test():    print('thread %s is ...

  8. Python学习02 列表 List

    Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...

  9. python学习笔记-02

    四.函数 1.定义函数 (1)定义规则 介绍列表方法的时候已经大概说过函数,学过数学的人都知道函数,给一个参数返回一个值.函数也可以自己定义.用如下的格式: >>>def 函数名(参 ...

随机推荐

  1. 有向图变为强连通图 hdu2767

    Proving Equivalences Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  2. LibreOJ #515 贪心只能过样例

    题目链接:https://loj.ac/problem/515 知识点: DP.bitset类 解题思路: DP部分不难想到:从 a 到 b 遍历,然后在已有的状态上加上遍历得到的数字的平方,难点在于 ...

  3. 技术大佬:我去,你竟然还不会用 this 关键字

    上一篇文章写的是 Spring Boot 的入门,结果有读者留言说,Java 都还没搞完,搞什么 Spring Boot,唬得我一愣一愣的.那这篇就继续来搞 Java,推出广受好评的我去系列第四集:你 ...

  4. php 序列化

    PHP serialize() 函数 serialize() 函数用于序列化对象或数组,并返回一个字符串. serialize() 函数序列化对象后,可以很方便的将它传递给其他需要它的地方,且其类型和 ...

  5. Nginx 配置文件语法

    一.语法规则: location [=|~|~*|^~] /uri/ { … } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码 ...

  6. js 滚动条滑动

    toTop() { let top = document.documentElement.scrollTop || document.body.scrollTop; // 实现滚动效果 const t ...

  7. Java岗位面试题分享:jvm+分布式+消息队列+协议(已拿offer)

    个人近期面试情况 今年二月以来,我的面试除了一个用友的,基本其他都被毙了,可以说是非常残酷的.其中有很多自己觉得还面的不错的岗位,比如百度.跟谁学.好未来等公司.说实话,打击比较大. 情况基本上是从三 ...

  8. Java实现 LeetCode 773 滑动谜题(BFS)

    773. 滑动谜题 在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示. 一次移动定义为选择 0 与一个相邻的数字(上下左右)进行交换. 最终 ...

  9. Java实现蓝桥杯凑算式(全排列)

    题目6.凑算式 凑算式 B DEF A + - + ------- = 10 C GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中AI代表19的数字,不同的字母代表不同的数字. 比如: ...

  10. Java实现 LeetCode 554 砖墙(缝隙可以放在数组?)

    554. 砖墙 你的面前有一堵方形的.由多行砖块组成的砖墙. 这些砖块高度相同但是宽度不同.你现在要画一条自顶向下的.穿过最少砖块的垂线. 砖墙由行的列表表示. 每一行都是一个代表从左至右每块砖的宽度 ...