学习自:python进程、线程、协程 - 张岩林 - 博客园

1、threading.Thread

Thread方法

方法(使用方法为Thread.xxx) 说明
start() 激活线程
getName() 获取线程的名称
setName() 设置线程的名称
name 名称属性(不是方法)
is_alive() 判断线程是否为激活状态
isAlive() 同上
setDaemon 设置为后台线程或前台线程(具体见下)
ident 获取线程标识符
join() 阻塞主线程
run() 线程start()之后自动执行线程对象的run方法

Thread.setDaemon(False):前台线程——False;后台线程——True;

如果是后台线程,主线程执行过程中,后台线程也在进行,主线程执行完毕之后,后台线程不论成功与否,均停止;如果是前台进程,主线程执行过程中,前台线程也在进行,主线程执行完毕后,等待前台进程执行完毕后,程序停止。

2、threading.RLock与thread.Lock

RLock允许在同一线程中被多次acquire,而Lock却不允许这种情况。如果使用RLock,那么acquire必须和release必须成对出现,即必须调用相同次数的acquire与release,才能真正释放所占用的锁。

3、threading.Event

Event对象用于主线程控制其他线程的执行,该对象主要提供了三个方法set、wait、clear.

事件处理机制:全局定义了一个Flag,如果Flag==False,那么当程序执行event.wait时就会阻塞,如果Flag==True,那么event.wait时不会阻塞

clear:将Flag设置为False

set:将Flag设置为True

进程&线程(二):Thread相关方法与属性的更多相关文章

  1. android 进程/线程管理(二)----关于线程的迷思

    一:进程和线程的由来 进程是计算机科技发展的过程的产物. 最早计算机发明出来,是为了解决数学计算而发明的.每解决一个问题,就要打纸带,也就是打点. 后来人们发现可以批量的设置命令,由计算机读取这些命令 ...

  2. android 进程/线程管理(三)----Thread,Looper / HandlerThread / IntentService

    Thread,Looper的组合是非常常见的组合方式. Looper可以是和线程绑定的,或者是main looper的一个引用. 下面看看具体app层的使用. 首先定义thread: package ...

  3. python进阶-------进程线程(二)

    Python中的进程线程(二) 一.python中的"锁" 1.GIL锁(全局解释锁) 含义: Python中的线程是操作系统的原生线程,Python虚拟机使用一个全局解释器锁(G ...

  4. 并发编程---线程---开启方式---进程线程的区别----Thread的其他属性

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

  5. Linux内核线程kernel thread详解--Linux进程的管理与调度(十)

    内核线程 为什么需要内核线程 Linux内核可以看作一个服务进程(管理软硬件资源,响应用户进程的种种合理以及不合理的请求). 内核需要多个执行流并行,为了防止可能的阻塞,支持多线程是必要的. 内核线程 ...

  6. Linux内核线程kernel thread详解--Linux进程的管理与调度(十)【转】

    转自:http://blog.csdn.net/gatieme/article/details/51589205 日期 内核版本 架构 作者 GitHub CSDN 2016-06-02 Linux- ...

  7. 从零开始构建一个Reactor模式的网络库(二)线程类Thread

    线程类Thread是对POSIX线程的封装类,因为要构建的是一个Linux环境下的多线程网络库,对线程的封装是很必要的. 首先是CurrentThread命名空间,主要是获取以及缓存线程id: #if ...

  8. android 进程/线程管理(一)----消息机制的框架

    一:android 进程和线程 进程是程序运行的一个实例.android通过4大主件,弱化了进程的概念,尤其是在app层面,基本不需要关系进程间的通信等问题. 但是程序的本质没有变,尤其是多任务系统, ...

  9. windows进程/线程创建过程 --- windows操作系统学习

    有了之前的对进程和线程对象的学习的铺垫后,我们现在可以开始学习windows下的进程创建过程了,我将尝试着从源代码的层次来分析在windows下创建一个进程都要涉及到哪些步骤,都要涉及到哪些数据结构. ...

随机推荐

  1. Intellig Idea 常用快捷键列表

    修改方法如下: 点击 文件菜单(File) –> 点击 设置(Settings- Ctrl+Alt+S), –> 打开设置对话框. 在左侧的导航框中点击 KeyMap. 接着在右边的树型框 ...

  2. VC++线程同步之临界区(CriticalSection)

    1.相关文件和接口 #include <windows.h> CRITICAL_SECTION cs;//定义临界区对象 InitializeCriticalSection(&cs ...

  3. 你我都会遇到的需求:如何导出MySQL中的数据~ 简单!实用!

    目录 你我都有的需求 方式一:tee 方式二:mysql_use_result 推荐阅读 一.给研发同学看的面试指南 二.MySQL-视频 三.进阶MySQL中间件-视频 四.白日梦的云原生-笔记 五 ...

  4. .net core部署到ubuntu 上传文件超过30MB

    默认的上传文件不能超过30MB,需要修改几个地方 一.web.config中添加配置 <requestLimits maxAllowedContentLength="214748364 ...

  5. JVM学习十 -(复习)内存分配与回收策略

    内存分配与回收策略 对象的内存分配,就是在堆上分配(也可能经过 JIT 编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的 Eden 区上,少数情况下可能直接分配在老年代,分配规则不固定 ...

  6. 无法加载 mcrypt (外链,英语) 扩展,请检查您的 PHP 配置。

    转载请注明来源:https://www.cnblogs.com/hookjc/ 需要安装libcrytp,在下面的地址下载libmarypt: ftp://mcrypt.hellug.gr/pub/c ...

  7. C++学习笔记_complex类的实现

    头文件中的防卫式声明 点击查看代码 #ifndef __COMPLEX__ #define __COMPLEX__ class complex { } #endif 类的定义 点击查看代码 class ...

  8. VMware中Ubuntu18配置静态IP地址

    1. VMware:编辑 -> 虚拟网络编辑器 -> 更改设置 2. 取消选中:使用本地DHCP服务将IP地址分配给虚拟机,并记住子网ip 3. 点击NAT设置,记住网关地址 正常情况下V ...

  9. Java 给Word每一页设置不同文字水印效果

    Word中设置水印时,可预设的文字或自定义文字设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法.下面,将以Ja ...

  10. 【lwip】lwip源码基础

    目录 前言 概念&作用 网络接口 概念引入 总结 lwip netif 结构体 链接 字段分析 网卡链表 网络 IP 接收数据函数 发送数据函数 ARP 模块调用的发送函数 出口回调函数 用户 ...