但我注意到,内存并没有释放(gc.get_objects()不断增长)。实际上,这些对象是列表、dict等,而不是文件。在

有没有办法手动释放资源?

代码:import ctypes

def terminate_thread(thread):

"""Terminates a python thread from another thread.

:param thread: a threading.Thread instance

"""

if not thread.isAlive():

return

exc = ctypes.py_object(SystemExit)

res = ctypes.pythonapi.PyThreadState_SetAsyncExc(

ctypes.c_long(thread.ident), exc)

if res == 0:

raise ValueError("nonexistent thread id")

elif res > 1:

# """if it returns a number greater than one, you're in trouble,

# and you should call it again with exc=NULL to revert the effect"""

ctypes.pythonapi.PyThreadState_SetAsyncExc(thread.ident, None)

raise SystemError("PyThreadState_SetAsyncExc failed")

class MyThread(threading.Thread):

def __init__(self):

threading.Thread.__init__(self)

self.result = None

self.error = None

def run(self):

try:

self.result = myfun(*args, **kw) #run external resource and the interrupt it

except Exception as e:

self.error = e

c = MyThread()

c.start()

c.join(60) # wait a minute

counter = 0

if c.isAlive():

while c.isAlive():

time.sleep(0.1)

try:

terminate_thread(c) # how to release resources?

except:

break

counter += 1

if counter > 10: break

raise TimeoutException

输出示例:

^{pr2}$

python线程执行完后释放内存_Python中的线程终止与内存释放相关推荐

  1. c#中等待某个线程执行完后再执行某个线程

    在方法的外部申请一个这样的变量 CountdownEvent latch = new CountdownEvent(3); 比如现在执行的是方法a public void a() { int si=0 ...

  2. java new一个线程执行完后会自动销毁吗_Java基础总结,超级全的面试题

    1. static关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是 static 的方法?是否可以在 static 环境中访问非static 变量? stat ...

  3. python 等待其他线程执行完_面试官:如何让线程顺序执行,join,还有其他办法吗?...

    面试官:如让线程顺序执行? 我:使用Thread的join方法. 面试官:除了join还有别的办法吗? 我:目前只用过join. 面试官:哦,那你了解CountDownLatch吗? 我:不了解,没使 ...

  4. python线程执行完后释放内存_python变量内存地址释放与加速并行计算多线程

    1.导入numba和gc包进行并行计算和内存释放 代码如下很容易的: #coding:utf-8 import time from numba import jit, prange, vectoriz ...

  5. python程序执行完后重头开始做烧饼_下塘烧饼 的动态 - SegmentFault 思否

    一.背景 java8的垃圾回收器一般推荐的是parNew+CMS,分别针对新生代和老年代的垃圾回收器.实际生产上,有时需要分析GC日志,检查GC回收有没有引起过多的系统暂停,特别是full GC. 二 ...

  6. python程序执行完后重头开始做烧饼_Long Way To Go 之 Python 3

    集合set 集合是无序的 作用:1.去重           eg. 把list转成set可自动去重 2.关系测试     eg. 交集.并集.差集等 举个栗子:Python班有个名字列表1,Linu ...

  7. python程序执行完后重头开始做烧饼_从“程序员转行卖烧饼”想到IT人创业

    我的一个朋友最近总在跟我念叨着"我不想做开发了,整天累死累活写程序,也攒不下几个钱.我想辞职搞点啥!" 我问他:"你想搞点啥?". 他说:"搞啥都比做 ...

  8. python程序执行完后重头开始_求教,程序执行到末尾如何重新开始的问题。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求教一下,我这是一个简单的10以内加减法.做对fssx次后,用户输入ok重新开始. 但是重新开始后貌似while语句不会重新起作用.该怎么办呢? impo ...

  9. 线程执行完之后会释放吗_java多线程并发:CAS+AQS+HashMap+volatile+ThreadLocal,乐分享...

    CyclicBarrier.CountDownLatch.Semaphore 的用法 CountDownLatch(线程计数器 ) CountDownLatch 类位于 java.util.concu ...

最新文章

  1. java socket监控_ZeroMQ(java)中监控Socket
  2. 基于visual Studio2013解决面试题之1007鸡蛋和篮子
  3. Oracle查询优化-03操作多个表
  4. 记录Pandas处理数据的两个小技巧
  5. 正则匹配问号_爬虫之正则表达式
  6. 面试之JSP九大内置对象和JSP四大作用域
  7. python切片的对象_Python 对象切片
  8. uint32是什么数据类型_C++编程基础: 4. 数据类型
  9. 专访 Unity 技术总监 Mark Schoennagel、杨栋:基于 Unity 制作影视动画的几点建议!
  10. 全志JAVA_android 全志a10(2.3.4)开发1(编译环境搭建)
  11. [转载] python里字典的用法_python中字典(Dictionary)用法实例详解
  12. NSArray的排序问题
  13. 新浪SAE sae_debug保存日志
  14. 年轻人正在双11掀起国潮热
  15. 【综合类型第 8 篇】陆游和唐婉的故事
  16. 限制网络带宽的软件Netlimiter
  17. 趣味测试类微信小程序
  18. java注解 pdf_使用 iText 复制带注释的 PDF
  19. PS制作gif动态图
  20. shopee店铺装修的意义-扬帆志远

热门文章

  1. 10打开没有反应_【专利】表面施胶剂的反应装置
  2. 牙齿间隙变大怎么办_牙齿缝隙大怎么办 5个方法解决牙齿缝隙大
  3. java 异步处理数据格式_spring mvc对异步请求的处理
  4. python 跳过异常元素继续,在python中的迭代器/生成器中引发异常后继续
  5. win2003安装邮箱服务器,windows2003邮件服务器
  6. 介绍计算机的英文文章,计算机方面的英语资料,介绍一些计算机的英语短文,有兴趣的可以看...
  7. 计算机三级之嵌入式系统学习笔记3
  8. 取消ajax请求时页面闪烁,用Ajax+js+jQuery实现无闪烁定时刷新页面
  9. VSCode如何进入到终端中
  10. JavaSE----属性、方法