[英]User events in unix c++
我正在尝试将多线程Windows应用程序移植到Unix。 在我的应用程序中,我们创建了用户创建的事件,这些事件向线程发出信号以执行特定任务。我发现条件变量或信号量可以用于向线程发出信号。我的要求是根据请求创建动态事件,但使用条件变量是不可行的或信号量。帮我使用Unix中的信号概念之类的事件。
Posix线程使您可以在具有互斥量和条件的线程之间进行通信。 man pthreads
, man pthread_cond_wait
等。
产生事件的另一种方法不依赖于线程,也不依赖于描述符。 见man epoll
, man poll
, man select
在C
手动实现事件系统可能需要一些时间,因此有一些库在实现事件系统,如libev
, libuv
, libevent
, libevent2
。
如果您想了解更多C++
,然后C
你可以使用boost
(如boost::signals
。不知道是否有其他的)或Qt
,它内置了完整的信号/槽机制和事件系统。但是,它需要相当重的依赖。
如果您想要完全实现的事件队列和许多内部功能,则可以查看任何AMQP
框架,例如rabbitmq
。
没有特定问题很难告诉您您需要什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.