【发布时间】:2017-09-27 17:15:51
【问题描述】:
我正在尝试将pthread_cond_wait() 用于 FIFO 等待队列。
我有停车场和汽车。每个批次都有容量。达到容量后,汽车应该排队等候,当有新空间可用时,新车应该以先进先出的方式停在该地段。
我想要实现的是
//thread1
if(Park capacity is not reached)
coming car parks to lot
else
coming car is added to the queue
if(a car leaves the lot )
signal thread 2
//thread2
while(no signal from thread1)
pthread_cond_wait()
oldcar = dequeue
oldcar parks to lot
基本上,我的问题是什么时候向线程 2 发送信号。如果我在达到容量时发送信号,那就不好了,因为我们不能让停车场不先出队。
我还有一个问题,这些功能在一个名为 Park 的函数中是必需的。但是我在调用这个函数之前创建了我的线程。我应该在哪里创建这些线程?在 Park 函数中还是在我创建所有线程的 main 函数中?
【问题讨论】:
标签: c multithreading operating-system pthreads mutex