线程池
我想问的问题如下
线程池是不是有很多种结构,因为我之前做的是做前端的
现在改做后端做一些服务器上的东西
前两天,主管问我了不了解线程池,我就说不知道,
后来我就在找了一些关于这方面的东西看,
我现在看的是别人写好的一个线程池的单元 uThreadPool
看完之后,我个人感觉跟我用线程的方式并没有太多的差别
因为我最近也做了一个通信的东西,用了多线程,其中有一个程序是保存数据到数据库里的
我的实现方式是这样的
先用 创建 TCP 服务器这里接收到客户端发送上来的数据,客户端可能会多个
我一共创建了以下几个类
类A 用于保存接收到的数据 这里用到临界区同步
因为发送上来的数据是有编号的,不同的编号的数据分别保存到数据不同的表里
所以我还创建了 类 B 继承 TTHread 用于对接收到的按编号分开再保存到
类A 的另一个实例
聊天信息 保存到实例 AA
登陆信息 保存到实例 BB
再创建 下面两个线程类
类 C 保存聊天信息 从AA 取出数据保存到数据库
类 D 保存登陆信息 从BB 取出数据保存到数据库
这里的所有的线程都是并行的,
我就想问下,我这样的写法可以算是线程池吗????
第一个用于添加接收到的客户端的数据,因为TCP服务器封装好了,所以当接收到数据后就向
[解决办法]
不算,呵呵
线程池简单的概念是多任务,多线程,线程管理。
所以至少有个管理的线程来管理其他的多线程,控制其他线程的状态(创建,工作,暂停,释放等)
[解决办法]
http://blog.csdn.net/simonhehe/article/details/8471320
[解决办法]
个人理解,“池”这个概念就是弄些现成的东西放那儿备用,而不是现用现建。不光线程池,别的池也是这样。例如,一个应用可能需要十几甚至几十个线程,但并非同时用。你可以一次创建好,这样最省事,但空间开销大。你也可以用一个建一个,用完就释放。这样最节省空间,但时间开销大,而且可能会有副作用。有的编程环境(例如 Javascript),你不能人为释放对象,得等系统自己清理。这时可以搞个小池子,例如事先创建几个线程,循环使用,几个线程就能顶几十个线程用。运行中发现池子不够大,可以临时加一个。这种动态池可以保证够用,还不至于弄些多余的浪费。我想这就是“池”的概念。
feiba7288 的例子很形象,大致也是这个意思。