专门针对涉及线程和图形的项目研究Python
我对C语言很有经验,但是对于我在我的一个类中分配的项目,我正在考虑将其作为一个项目来介绍Python。我以前从未使用过Python,但我做过一些研究,很明显GUI设计和可视化对于Python来说非常容易;但是,我在线程上找不到任何库 我的项目将有两个线程检查一个对象/类,以查看是否设置了bool,以便它可以对某些数据进行操作,并且一旦轮到它完成,它将标记另一个线程以对相同的数据进行操作。在一个图形上有几百个记录的数据点,我需要以图形方式显示 我的问题如下:专门针对涉及线程和图形的项目研究Python,python,c,multithreading,user-interface,graph,Python,C,Multithreading,User Interface,Graph,我对C语言很有经验,但是对于我在我的一个类中分配的项目,我正在考虑将其作为一个项目来介绍Python。我以前从未使用过Python,但我做过一些研究,很明显GUI设计和可视化对于Python来说非常容易;但是,我在线程上找不到任何库 我的项目将有两个线程检查一个对象/类,以查看是否设置了bool,以便它可以对某些数据进行操作,并且一旦轮到它完成,它将标记另一个线程以对相同的数据进行操作。在一个图形上有几百个记录的数据点,我需要以图形方式显示 我的问题如下: Python是否有特定的库可以帮助我轻
感谢大家在这件事上的帮助。igraph非常适合图形可视化。如果是指打印点,请使用matplotlib
import matplotlib as plt
X = [0, 1, 2]
Y = [0, 1, 2]
plt.plot(X, Y)
plt.show()
线程模块是python标准库内置的。您可能不需要python中的线程,因为一次只能运行一个线程。搜索GIL(在这里或谷歌)。有一些模块,如
多处理
,允许轻松使用基于多进程的并发。下面创建两个进程,用于打印在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。您可以将其作为一个单独的图形库来打印和显示,也可以将其嵌入到更大的GUI库(如QT)中。下面在matplotlib中绘制一条线
import matplotlib as plt
X = [0, 1, 2]
Y = [0, 1, 2]
plt.plot(X, Y)
plt.show()
它还可以绘制你能想到的几乎任何类型的图形(散点、历史、3d冲浪/帧、轮廓等)。谢谢,这非常有用。在您的示例中,共享对象的显式句柄是什么?我没有在示例中包括,b/c没有共享任何内容。您可以将对象从一个进程传递到另一个进程,只要它们不需要看到彼此所做的更改,就不需要额外的工作。如果他们需要查看更改,那么您需要共享状态:。如果您曾经使用
mmap
为C中的多进程应用程序分配共享内存,那么它在功能上与此非常相似,但显然更好、更简单,因为它是Python.-1,因为这解释了Python中线程的缺点,但没有说明它们在Python中的处理(这是被请求的)。此外,GIL问题不适用于OP的用例。