如果我永远同时运行两个或多个函数,它们是否访问相同的内存?

时间:2017-05-05 11:46:46

标签: python multithreading python-3.x

我正在使用Praw(一个API包装器)制作一个reddit bot。我正在监控并回复评论和帖子。 Praw有"溪流"新评论和新帖子,以便我不必处理诸如确保我不会两次回复同一帖子之类的内容。这是通过for submission in subreddit.stream.submissions():for comment in subreddit.stream.comments():完成的。这两个都会无休止地循环,就像创建两个while(true)循环一样。同时监控两个流的最佳方法是什么?如果我应该使用线程,两个线程是否能够访问相同的变量?

对于好奇:这是我的代码。 https://github.com/kenblu24/procss-bot

1 个答案:

答案 0 :(得分:1)

通常是的,线程能够访问整个进程的内存。这是一种在编程语言中保持一致的功能。

虽然Python中的多线程因GIL而受到严重限制。

如果您可以容忍稍微丑陋的代码,您可以尝试在while True循环中依次处理提交中的一个元素,一个来自注释等。