繁体   English   中英

UNIX C ++中的用户事件

[英]User events in unix c++

我正在尝试将多线程Windows应用程序移植到Unix。 在我的应用程序中,我们创建了用户创建的事件,这些事件向线程发出信号以执行特定任务。我发现条件变量或信号量可以用于向线程发出信号。我的要求是根据请求创建动态事件,但使用条件变量是不可行的或信号量。帮我使用Unix中的信号概念之类的事件。

Posix线程使您可以在具有互斥量和条件的线程之间进行通信。 man pthreadsman pthread_cond_wait等。

产生事件的另一种方法不依赖于线程,也不依赖于描述符。 man epollman pollman select

C手动实现事件系统可能需要一些时间,因此有一些库在实现事件系统,如libevlibuvlibeventlibevent2

如果您想了解更多C++ ,然后C你可以使用boost (如boost::signals 。不知道是否有其他的)或Qt ,它内置了完整的信号/槽机制和事件系统。但是,它需要相当重的依赖。

如果您想要完全实现的事件队列和许多内部功能,则可以查看任何AMQP框架,例如rabbitmq

没有特定问题很难告诉您您需要什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM