当前位置: 软件>C/C++软件
线程管理库 LibMCore
本文导语: LibMCore 是一个提供各种函数用来创建异步轻量级进程和通用队列处理的 C 开发库。可实现统计核心数、实时调度、设置核心亲和度以及操作循环计数器。 示例代码: extern void huge_process_init (void); extern int huge_process (void *_p...
LibMCore 是一个提供各种函数用来创建异步轻量级进程和通用队列处理的 C 开发库。可实现统计核心数、实时调度、设置核心亲和度以及操作循环计数器。
示例代码:
extern void huge_process_init (void);
extern int huge_process (void *_param);
int nb_blocks = 10;
int nb_loops = 100;
/* init structure */
data_t *d = (data_t *) calloc (nb_blocks, sizeof (data_t));
...
/* create queue */
queue_task_t *queue = create_queue_task ("process", 1000, 70, 2, "0+1+2+3:2", huge_process_init);
for (j = 0; j < nb_loops; j++) {
/* fill queue */
queue_sub_task_info_t *queue_huge_process = queue_init (queue);
for (i = 0; i < nb_blocks; i++) {
rc = queue_load (queue, queue_huge_process, huge_process, d + i);
if (rc == 0)
printf ("error %d for load %dn", rc, i);
}
/* queue processing */
rc = queue_end (queue, queue_huge_process);
if (rc == 0)
printf ("error %d on queue endingn", rc);
/* statistics */
queue_stat (queue, 1);
printf ("n");
}