当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

LibMCore

线程管理库
授权协议 LGPL
开发语言 C/C++
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 段干德泽
操作系统 Linux
开源组织
适用人群 未知
 软件概览

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");
}
 相关资料
  • 在日常生活中,我们要完成一个大任务,一般会将它分解成多个简单、容易解决的小问题,小问题逐个被解决,大问题也就随之解决了。在多线程操作系统中,也同样需要开发人员把一个复杂的应用分解成多个小的、可调度的、序列化的程序单元,当合理地划分任务并正确地执行时,这种设计能够让系统满足实时系统的性能及时间的要求,例如让嵌入式系统执行这样的任务,系统通过传感器采集数据,并通过显示屏将数据显示出来,在多线程实时系统

  • 线程管理接口 结构体 struct   rt_thread   线程控制块 更多...   宏定义 #define  RT_THREAD_INIT   0x00   初始化完成状态   #define  RT_THREAD_READY   0x01   就绪状态   #define  RT_THREAD_SUSPEND   0x02   挂起状态   #define  RT_THREAD_RUNN

  • 用途: 提供一个管理进程的接口 multiprocessing Basics Importable Target Functions Determining the Current Process Daemon Processes Waiting for Processes Terminating Processes Process Exit Status Logging Subclassing

  • 本章主要内容 启动新线程 等待线程与分离线程 线程唯一标识符 好的!看来你已经决定使用多线程了。先做点什么呢?启动线程、结束线程,还是如何监管线程?C++标准库中只需要管理std::thread关联的线程,无需把注意力放在其他方面。不过,标准库太灵活,所以管理起来不会太容易。 本章将从基本开始:启动一个线程,等待这个线程结束,或放在后台运行。再看看怎么给已经启动的线程函数传递参数,以及怎么将一个线

  • 问题内容: 我有一个应用程序,当用户要求过滤图像时会生成一个新线程。 这是我唯一要做的任务,所有任务都同等重要。 如果我请求太多并发线程(我最多希望有9个),则线程管理器将抛出 RejectedExecutionException 。 在那一刻我要做的是; 只需将被拒绝的任务添加到队列中,下次启动线程时,将检查队列以查看是否存在积压。 显而易见的问题是,如果最终任务在第一次尝试时被拒绝,它将永远不

  • 每个程序至少有一个线程:执行main()函数的线程,其余线程有其各自的入口函数。线程与原始线程(以main()为入口函数的线程)同时运行。如同main()函数执行完会退出一样,当线程执行完入口函数后,线程也会退出。在为一个线程创建了一个std::thread对象后,需要等待这个线程结束;不过,线程需要先进行启动。下面就来启动线程。 2.1.1 启动线程 第1章中,线程在std::thread对象创