python 程序中断_有趣的Python处理程序中断信号
我正在做一个编程项目——用Python编写一个基本的P2P文件共享应用程序。我使用两个线程:一个主线程调用select并等待来自套接字列表的输入系统标准(接收键入的命令)和一个助手线程,从队列中获取状态更新消息并打印它们。(这是唯一能打印任何东西的东西)
我还需要捕捉标准SIGINT并处理它以优雅地退出。我有一个quit方法可以做到这一点;输入'quit'作为命令就可以了。所以在主线程中,我尝试将这个方法设置为SIGINT的处理程序。据我所知,进程捕捉到信号并调用quit方法。helper线程打印一条消息,确认它正在退出。但是,我从主线程收到以下错误消息:Traceback (most recent call last):
File "peer.py", line 226, in
main()
File "peer.py", line 223, in main
p.run()
File "peer.py", line 160, in run
readables, writables, exceptions = select(self.sockets, [], [])
select.error: (4, 'Interrupted system call')
之后程序仍然退出。而在没有信号处理程序的情况下,发送一个SIGINT会得到以下结果:
^{pr2}$
无法终止程序;我必须停止并终止它。这是令人困惑的,因为SIGINT似乎只在被我的自定义方法捕获时才中断select调用。(它只在打印队列上放置一条消息并设置一个“done”变量)有人知道这是怎么发生的吗?同时使用信号处理程序和线程是不是一个坏主意?在
python 程序中断_有趣的Python处理程序中断信号相关推荐
- 有趣的超短python代码_有趣的python精短程序
python可以简单优美,也很有趣,下面是收集的例子: 1.一句话开始一个http的文件服务器: $ python -m SimpleHTTPServer Serving HTTP on 0.0.0. ...
- python turtle 绘图速度用函数会快吗_有趣的Python turtle绘图
专 题 Feature Story 16 \ China Science & Technology Education 文 _ 毛京宇/北京师范大学第三附属中学 魏云靖/北京市师达中学 有趣的 ...
- python编有趣的小程序_有趣的python小程序
有趣的python小程序 1.密码生成器x=int(input()) print(''.join(__import__('random').choice('QWERTYUIOPASDFGHJKLZXC ...
- python 默认参数_有趣的 Python 特性 3 | 当心默认可变参数这个大猪蹄子。
本文字数:1575 字 阅读本文大概需要:4 分钟 写在之前 Python 提供了很多让使用者觉得舒服至极的功能特性,但是随着不断的深入学习和使用 Python,我发现其中存在着许多玄学的输出与之前预 ...
- 学习python课程_想学习Python吗? 这是我们的免费4小时互动课程
学习python课程 Python is a popular, versatile and easy-to-learn language. It's the go-to language for AI ...
- 2018年python薪资_最好的Python:2017和2018年至今我最喜欢的文章集
2018年python薪资 我打算发布此收藏集 (My intention with publishing this collection) Last year I only used Medium ...
- python股市_如何使用python和破折号创建仪表板来主导股市
python股市 始终关注大局 (Keep Your Eyes on the Big Picture) I've been fascinated with the stock market since ...
- python 切片_全面解读Python高级特性切片
大家好,欢迎来到Crossin的编程教室! 众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串.列表.元组-)中的单个元素,那么,如果要获取一个索引区间的元素该怎么办呢? 切片(slic ...
- python书籍_最好的Python书籍,让您像专业程序员一样编程
Python是一种值得学习的语言.学习Python不仅会激发你用最简单的方式完成高度复杂的任务,还会打破传统编程范型的藩篱.Python是能够改变你的编程方式进而改变你看问题的角度的一种语言. Pyt ...
最新文章
- s时钟画布 android,Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟
- 必要商城高级UED经理张不写:设计师如何规划职业方向
- 作业6--四则运算APP之Sprint计划
- 【小型JavaFx项目】英汉词典
- python从入门到精通pdf-跟老齐学Python:从入门到精通 完整版PDF[7MB]
- 基于map函数生成星战片头动画
- 推荐一套linux视频-----很棒
- 将mp3格式的音频转换为采样率8k的wav
- 黄山学院计算机专业考研情况,为什么考入北大的研究生偏偏来自黄山学院这样的学校?...
- 什么是Saas,以及什么是PLG下的Saas
- Android自定义半圆进度条 半圆渐变色进度条带指示 半圆开口大小可自由修改
- NGINX中如何根据客户端IP地址控制访问
- 均方根与峭度系数_调节阀流量系数的影响因素及其工程应用调节阀流量系数的影响...
- 数据版“吐槽大会”: 国产综艺节目年终盘点
- SimpleITK读取医学影像文件
- python中如何移动图形工作站_Schrodinger分子动力模拟与建模工作站配置推荐
- 提取微信记录为csv文件或txt文件(免root,免安装java)
- Windows文件系统中文件的储存原理、文件粉碎机的原理、数据恢复的原理
- 与Qt结合使用的3D引擎
- Project 2010 概述
热门文章
- Flutter Dart 安装在window系统
- WPF Calendar 日历控件 样式自定义
- 【WPF】屏幕右下角消息提示框
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2- “Tab”标签新增可“最大化”显示功能...
- js获取url中的参数值
- 在桌面应用程序与Web应用程序之间该如何选择
- 对Ubuntu操作系统进行彻底优化
- 每日一程-10.五种基本随机数测试-续
- 关于数位动规(入门到进阶,难度中档)
- vue-cli 自动切换环境