多线程间通讯

lhj0532 2004-12-27 11:58:55
我现在做一个socket服务器的小程序,起一个线程去服务客户端,有如下问题:
1、当线程接收数据了以后如何及时通知主线程:“来数据了!”,java里有没有像VC一样的消息队列,主线程可以去搜索消息队列。
2、我自己有一个解决方案看看是否可行:专门起一个监测数据的线程看看是否是“来数据了!”。如果不可行有什么更好的方案?
谢谢!!!
...全文
90 点赞 收藏 9
写回复
9 条回复
lhj0532 2004年12月27日
明白了,谢谢各位!!!
回复 点赞
fohoo 2004年12月27日
同意robber, kaymo

使用wait()/notify()
回复 点赞
jFresH_MaN 2004年12月27日
操作系统的做法是让所有线程拥有同样的优先级,并且放在一个线程队列里面
当需要调度到某一个线程的时候提高它的优先级,那它自然会执行啦
呵呵
回复 点赞
lhj0532 2004年12月27日
现在我的问题就是怎么调度到主线程?
回复 点赞
kaymo 2004年12月27日
wait();notifyAll();notify();
回复 点赞
双杯献酒 2004年12月27日
消息队列不是VC的,
是Windows的。
回复 点赞
虎叔 2004年12月27日
问题很简单嘛。

1 主线程:

wait();
//消息来乐做什么?

2 子线程

收到消息
mainThread.notify();//通知主线程可以去取消息乐:)






回复 点赞
jFresH_MaN 2004年12月27日
楼主有没有看过操作系统里面的线程调度啊
我觉得应该使用那样的机制

就是使用一个线程来调度其它线程,当有一个线程受到数据就调度到主线程执行相应操作
回复 点赞
lhj0532 2004年12月27日
怎么没有人理我?顶……
回复 点赞
发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告