大佬教程收集整理的这篇文章主要介绍了linux – Python无法启动新线程,但不能达到线程限制,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我尝试运行以下程序:
Type "Help","copyright","credits" or "license" for more information. >>> import threading >>> import time >>> def func(): ... i = 0 ... while True: ... i += 1 ... print(i) ... time.sleep(1) ... >>> >>> func() 1 2 3 ^CTraceBACk (most recent call last): File "<stdin>",line 1,in <module> File "<stdin>",line 6,in func KeyboardInterrupt >>> t = threading.Thread(target=funC) >>> t.start() TraceBACk (most recent call last): File "<stdin>",in <module> File "/usr/lib/python3.4/threading.py",line 850,in start RuntimeError: can't start new thread >>>
如您所见,在尝试启动线程时,我收到上述错误.一些在线初始搜索似乎表明问题可能是由于系统运行到线程限制.这是ulimit -a的输出:
# ulimit -a core file size (blocks,-C) 0 data seg size (kbytes,-d) unlimited scheduling priority (-E) 0 file size (blocks,-f) unlimited pending signals (-i) 961 max locked memory (kbytes,-l) 64 max memory size (kbytes,-m) unlimited open files (-n) 1024 pipe size (512 bytes,-p) 8 POSIX message queues (bytes,-q) 819200 real-time priority (-r) 0 stack size (kbytes,-s) 8192 cpu time (seconds,-t) unlimited max user processes (-u) 961 virtual memory (kbytes,-v) unlimited file locks (-X) unlimited
使用this method,我系统上的线程总数是75,这远低于961的限制.这是我当前的内存状态:
# free -m @R_779_10586@l used free shared buffers cached Mem: 120 118 2 60 0 65 -/+ buffers/cache: 52 67 Swap: 0 0 0
我还通过运行echo 1>来运行内存压缩器.的/ proc / sys目录/ VM / compact_memory.
我想如果我重新启动设备一切都会正常工作(因为代码是已知的工作代码),但由于我现在有这种状态的设备,我很想知道问题是什么.
以上是大佬教程为你收集整理的linux – Python无法启动新线程,但不能达到线程限制全部内容,希望文章能够帮你解决linux – Python无法启动新线程,但不能达到线程限制所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。