LibMCore - 线程管理库


LGPL
Linux
C/C++

软件简介

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 %d\n", rc, i);
    }

    /* queue processing */
    rc = queue_end (queue, queue_huge_process);
    if (rc == 0)
        printf ("error %d on queue ending\n", rc);

    /* statistics */
    queue_stat (queue, 1);
    printf ("\n");
}