Linux 如何在运行时将新消息传递给线程函数?
在Linux 如何在运行时将新消息传递给线程函数?,linux,multithreading,pthreads,Linux,Multithreading,Pthreads,在pthread\u create中,我可以指定一条消息,然后在运行时,我可能会得到需要传递到线程进行打印的新消息 一种方法可能是创建一个全局向量,并继续向其中添加消息。线程将获取该向量并扫描它以查找新消息。 但是这样就必须为n个线程创建n个向量 或一个具有线程ID、消息和打印状态的结构 可行的解决办法是什么 编辑1: 以下设计是否良好或需要一些改进 以下代码将在一个普通函数中编写,该函数将由main()调用 检查线程(负责抓取该消息)是否已经存在 如果是,将消息推送到该线程的队列中,使用(
pthread\u create
中,我可以指定一条消息,然后在运行时,我可能会得到需要传递到线程进行打印的新消息
一种方法可能是创建一个全局向量,并继续向其中添加消息。线程将获取该向量并扫描它以查找新消息。但是这样就必须为n个线程创建n个向量
或一个具有线程ID、消息和打印状态的结构 可行的解决办法是什么 编辑1: 以下设计是否良好或需要一些改进 以下代码将在一个普通函数中编写,该函数将由main()调用
- 检查线程(负责抓取该消息)是否已经存在
- 如果是,将消息推送到该线程的队列中,使用(pthread\u cond\u signal())唤醒该线程
- 如果否,则创建线程,创建其队列,将消息推送到该队列中
- 当线程读取完其队列中的所有消息后,让它与(pthread_cond_wait())一起休眠