多线程通信问题请教

lxw2100 2010-10-26 06:16:16
多线程的通信程序,主要负责从数据库中的指令表读取指令数据,转发到不同地址的设备;同一个设备一次只能接收处理一条指令数据,也就是说针对同一地址的指令,只能在此设备处理完成上一条指令后再接收下一条指令;请教该如何处理?

另外,在多线程通信过程中,刚开始运行时操作都正常,运行一段时间后,就出现以下错误:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.

请教如何处理?
...全文
109 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
whut_lcy 2010-10-26
  • 打赏
  • 举报
回复
按照你的问题,这里有两种线程实体:
1) 查询任务并将任务加入到任务队列的线程,一个 (T)
2) 从任务队列获取任务并执行的线程(个数与设备对应),多个 (Ti)

公共数据:
任务队列Q。

T和N个Ti共享数据对象Q。 一个线程去修改Q,N个线程去查询Q,这里需要做T和Ti之间的同步
而不同Ti会并发的读取Q,所以Ti之间也有个同步


第二个问题:看看你的数据库连接资源是否正确关闭,否则资源耗尽一样无法连接




lxw2100 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 whut_lcy 的回复:]
线程同步吧。
第二个,网络断了。
[/Quote]
线程同步,是指对第一个问题吧。
我的处理过程是将发送指令的动作封装成一个任务,该任务继承Thread;将任务加入工作队列;由线程取任务去执行。这个线程同步,具体如何处理?请教

第二个问题不是网络断了,因为此时我使用查询工具还是可以正常查询的。估计是因为多线程对数据库的连接太多引起;出错基本都是在return DriverManager.getConnection(url, user, password)这行代码。
请教了!
whut_lcy 2010-10-26
  • 打赏
  • 举报
回复
线程同步吧。
第二个,网络断了。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧