期待专门针对涉及线程和图形的项目进入Python

时间:2014-09-30 02:27:33

标签: python c multithreading user-interface graph

我在C语言方面经验丰富,但对于我在其中一个课程中分配的项目,我正在考虑将其用作将项目介绍给Python的项目。我以前从未使用过Python,但我做过一些研究,很明显GUI设计和可视化对Python非常容易;但是,我无法在线程上找到任何库。

我的项目将有两个线程检查一个对象/类,看看是否设置了bool,以便它可以对某些数据进行操作,一旦它完成,它将标记另一个线程进行操作相同的数据。图表上将有数百个记录的数据点,我需要以图形方式显示。

我的问题如下:

  1. Python是否有特定的库可以帮助我轻松显示数百个点的图形?       如果是这样,你会推荐哪个初学者使用Python?

  2. 哪些线程库最适合Python中的初学者?

  3. 谢谢大家对此事的任何帮助。

2 个答案:

答案 0 :(得分:4)

igraph适用于图形可视化。如果您的意思是绘制点,请使用matplotlib。

线程模块内置了python标准库。

答案 1 :(得分:1)

你可能不想在Python中使用线程,因为一次只能运行一个线程。搜索GIL(此处或Google)。像multiprocessing这样的模块允许轻松使用多个基于进程的并发。下面创建两个进程来打印args关键字arg中传递的字符串。多处理的最大问题是,因为它是多进程(并且进程具有单独的地址空间),所以必须明确处理共享对象。

import multiprocessing as mp

def f(name):
  print name

p = mp.Process(target=f, args=('bob',))
q = mp.Process(target=f, args=('jeff',))
p.start()
q.start()
p.join()
q.join()

有关图形,请参阅matplotlib。你可以单独使用它来绘制和显示,也可以将它嵌入到像QT这样的大型GUI库中。下面在matplotlib中绘制一条线。

import matplotlib as plt

X = [0, 1, 2]
Y = [0, 1, 2]
plt.plot(X, Y)
plt.show()

它也可以做你能想到的任何类型的图形(散射,组合,3D冲浪/框架,轮廓等)。