pycharm和python idle区别_python线程方法在IDLE和pycharm中是否不同?

pycharm和python idle区别_python线程方法在IDLE和pycharm中是否不同?实际上 我在 IDLE python3 5 2shell 和 Pycharm 社区版 2017 2 中运行和调试这些代码 但是当我运行代码很多次时 我发现有一些问题让我困惑 在 pycharm 中运行的代码将生成以下结果 线程 3 处理一线程 1 处理二线程 3 处理三线程 2 处理四线程 3 处理五线程 1 处理六线程 2 处理七线程 1 处理八在 pycharm 中运行的代码将生成以下结果 线程 1 处理一线程 2 处理二线程 3 处理三线程 1 处理四线程

实际上,我在IDLE(python3.5.2shell)和Pycharm社区版2017.2中运行和调试这些代码。

但是当我运行代码很多次时,我发现有一些问题让我困惑。在pycharm中运行的代码将生成以下结果:线程3处理一

线程1处理二

线程3处理三

线程2处理四

线程3处理五

线程1处理六

线程2处理七

线程1处理八

在pycharm中运行的代码将生成以下结果:线程1处理一

线程2处理二

线程3处理三

线程1处理四

线程2处理五

线程3处理六

线程1处理七

线程2处理八

如你所见,“1 3 2 3 1 2 1”和“2 3 1 2 3 1 2”。我跑了很多次才找到这个。所以我只想知道,为什么线程方法在不同的IDE中是不同的?你能告诉我一些学习Python线的好方法吗?import queue

import threading

import time

exitFlag = 0

class myThread(threading.Thread):

def __init__(self, threadID, name, q):

threading.Thread.__init__(self)

self.threadID = threadID

self.name = name

self.q = q

def run(self):

print(“Open Thread:” + self.name)

process_data(self.name, self.q)

print(“Exit Thread:” + self.name)

def process_data(threadName, q):

while not exitFlag:

queueLock.acquire()

if not workQueue.empty():

data = q.get()

print(“%s processing %s” % (threadName, data))

queueLock.release()

else:

queueLock.release()

time.sleep(1)

threadList = [“Thread-1”, “Thread-2”, “Thread-3”]

nameList = [“One”, “Two”, “Three”, “Four”, “Five”, “Six”, “Seven”, “Eight”]

queueLock = threading.Lock()

workQueue = queue.Queue(10)

threads = []

threadID = 1

for tname in threadList:

thread = myThread(threadID, tname, workQueue)

thread.start()

threads.append(thread)

threadID += 1

queueLock.acquire()

for word in nameList:

#print(workQueue.empty())

workQueue.put(word)

#time.sleep(1)

queueLock.release()

while not workQueue.empty():

pass

exitFlag = 1

for t in threads:

t.join()

print(“Exit Main Thread”)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/173240.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月27日 上午9:16
下一篇 2026年3月27日 上午9:16


相关推荐

  • Python 安装matplotlib(命令提示符安装)

    Python 安装matplotlib(命令提示符安装)1 直接打开命令提示符 快捷键 window r 2 若提示安装失败 Python Youareusingp 0 1 howeverversi 0 1isavailable 输入 python mpipinstall Upipsetuptoo 进行升级 安装成功 则下图所示 3 安装成功后 输入 pytho

    2026年3月19日
    3
  • 咨询接住了却办不下去,问题出在客服系统还是业务流程?

    咨询接住了却办不下去,问题出在客服系统还是业务流程?

    2026年3月15日
    1
  • 混元1.8B翻译模型API封装:Flask快速教程,1小时上线

    混元1.8B翻译模型API封装:Flask快速教程,1小时上线

    2026年3月13日
    2
  • loadrunner性能测试步骤_loadrunner可以做接口测试吗

    loadrunner性能测试步骤_loadrunner可以做接口测试吗LoadRunner性能测试教程1.工具介绍及下载2.操作步骤2.1.VuGen脚本编写及运行2.2.Controller场景运行2.3.Alalysis分析1.工具介绍及下载LoadRunner,是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统

    2022年10月10日
    56
  • python怎样安装whl文件

    python怎样安装whl文件python第三方组件有很多都是whl文件,遇到这样的whl文件应该怎样安装呢,今天来介绍一下whl文件怎样安装。(一)下载whl文件可以从下面;两个网站找到自己需要的whl文件,部分文件在国内网站上没有,pypi网站上是最全的。pypi网站:https://pypi.python.org/pypi/国内whl集合网:https://www.l…

    2022年4月5日
    114
  • GDB调试命令详解

    GDB调试命令详解GDB 是什么调试程序程序中出现的语法错误可以借助编译器解决 但逻辑错误则只能靠自己解决 实际场景中解决逻辑错误最高效的方法 就是借助调试工具对程序进行调试 所谓调试 Debug 就是让代码一步一步慢慢执行 跟踪程序的运行过程 比如 可以让程序停在某个地方 查看当前所有变量的值 或者内存中的数据 也可以让程序一次只执行一条或者几条语句 看看程序到底执行了哪些代码 也就是说 通过调试程序 我们可以监控程序执行的每一个细节 包括变量的值 函数的调用过程 内存中数据 线程的调度等 从而发现隐藏的错误或者低

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号