2

过去我没有做太多线程。我对它应该如何工作的假设如下:

启动 n 个线程

当一个线程完成时,启动一个新线程并终止现有线程。这合适吗?

我在 python 中工作,所以我打算让我的线程中的 main 方法在它死之前创建一个新实例。我不完全确定这是安全的。有什么建议吗?

4

1 回答 1

2

一个好的开始是研究生产者-消费者问题. 它涉及两个不同的函数来操作一个固定大小的队列。这个问题当然有多种解决方案,但处理这个问题的常用方法是使用信号量和互斥体,它们只是二进制信号量,它们基本上锁定和解锁关键部分,即操作队列的函数。考虑到这一点,作为示例,您将为您拥有的每个函数创建 n 个线程,在此示例中为生产者函数和消费者函数。然后在生产者函数中,您将有一个由互斥锁/解锁包围的 putItem() 调用,该调用仅允许一个进程在互斥调用之间运行,然后由一个信号量包围,该信号量在队列为空时解锁并在队列为空时锁定满的。在消费者函数中,您将有一个由信号量包围的互斥锁包围的 getItem() 调用,该信号量在队列满时解锁,在队列为空时锁定。我建议查看维基百科页面,甚至可能查看POSIX pthreads它在 C 中,但概念就在那里。然后,当您准备好应用您在 Python 中学到的知识并查看他们的线程文档时。

于 2012-12-09T03:06:54.643 回答