0
点赞
收藏
分享

微信扫一扫

C实现的跨平台的线程池


C实现的跨平台的线程池

绝对原创!

线程池(threadpool)是这样的一种设施,初始化创建指定数目的线程,然后动态添加任务(task)到线程池的任务队列中(queue),线程池自动挑选一个线程工作者(worker)去执行这个任务(执行任务的函数在添加任务时由用户指定)。

我花了半天时间,把以前的跨平台的线程池(threadpool.c)改造了一下,支持:

1)Windows+vs2015

2)cygwin

3)Linux

其他读者自己扩展。

我改造了原始线程池的代码,增加了特定于每个线程的存储(参数),这些参数在创建池的时候指定。好处是:

1)可以把数据库的连接放置到线程中。

2)可以把到服务器的连接放置到线程中。

其他读者自己想象。

同时增加了任务队列中特定于每个任务的固定存储,以减少在执行任务时内存分配和释放的开销。

这个代码经过了n多年各种项目的检验。下面是可以一键编译的代码:

​​https://github.com/pepstack/threadpoool_sample​​

举报

相关推荐

0 条评论