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条记录
感觉思维有点混乱 又是多线程 又是多表的
有没人做过类似的 帮忙梳理梳理思路