日期:2014-05-17  浏览次数:20946 次

100分求多线程循环打印的思路
比方说网络打印机 有5台 192.168.0.10 - 192.168.0.15


有台PC服务器 所有的打印请求都会放在数据库里3张表里(不同的表 打印的格式不一样) 
现在要求就是做个打印服务器 循环采用多线程 向不同的打印机输出打印内容 打印成功后回填打印成功标志

数据库大概是这样的

表A 
打印内容 打印机IP 打印时间

表B 
打印标题 打印内容 打印机IP 打印时间

表C

打印人 打印内容 打印机IP 打印时间

=====================================================
以前早期的做法是单线程 循环表A记录 然后根据打印机IP输出内容 然后循环表B ... 表C 

但是问题在于如果有台打印机异常 后面的任务就会一直等待
-------------------------------
现在需要改写这个程序 打算一台打印机就输出一条线程 这样互不干扰


我现在考虑的问题是 
1. 对打印机先做循环 取出一共有多少台打印机 然后开启多少条线程 再去数据库里取相应的打印记录 对表A B C进行循环

还是

2. 先取出所有数据然后 看取出数据里有多少打印机 在开启相应的线程
比如 
表A 有 3条记录 192.168.0.11 2条记录 192.168.0.15 1条记录
表B 有 5条记录 192.168.0.11 1条记录 192.168.0.10 3条记录 192.168.0.15 1条记录
表C 有10条记录 192.168.0.12 3条记录 192.168.0.13 5条记录 192.168.0.14 2条记录


感觉思维有点混乱 又是多线程 又是多表的  

有没人做过类似的 帮忙梳理梳理思路