我过去没有做太多的线程。我对它应该如何工作的假设如下:
开始n个帖子
当线程完成时,启动一个新线程并终止现有线程。 这是对的吗?
我正在使用python,所以我打算在我的线程中使用main方法在它死之前创建一个新实例。我不完全确定这是安全的。有什么建议吗?
答案 0 :(得分:2)
一个好的开始就是调查Producer-consumer problem。它涉及两个不同的函数来操作单个固定大小的队列。这个问题当然有多种解决方案,但处理这个问题的常用方法是使用信号量和互斥量,它们只是二进制信号量,它基本上锁定和解锁关键部分,即操纵队列的函数。以此为例,您将为每个函数创建n个线程,在此示例中为生产者函数和使用者函数。然后在生成器函数中,你将有一个由互斥锁定/解锁包围的putItem()调用,它只允许一个进程在互斥锁调用之间运行,然后由一个在队列为空时解锁的信号量包围,并在队列为空时锁定充分。在使用者函数中,您将有一个由信号量锁包围的getItem()调用,该信号量锁由信号量包围,当队列已满时解锁,当队列为空时锁定。我建议查看维基百科页面,甚至可能查看它在C中的POSIX pthreads,但概念是存在的。然后,当您准备好应用您在Python中学到的知识并查看其文档以进行线程化时。