社区
Java SE
帖子详情
关于java多线程问题
concisedistinct
2012-03-03 09:17:12
关于java多线程问题
1、
在一个线程中等待一个队列返回结果值,是否可以在该线程中设置结果值并放入队列,从而使得等待的地方继续执行?
2、
是否可以给线程执行设置顺序?
3、
事件通知与队列、线程间如何交互?
谢谢。
...全文
97
8
打赏
收藏
关于java多线程问题
关于java多线程问题 1、 在一个线程中等待一个队列返回结果值,是否可以在该线程中设置结果值并放入队列,从而使得等待的地方继续执行? 2、 是否可以给线程执行设置顺序? 3、 事件通知与队列、线程间如何交互? 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MiceRice
2012-03-03
打赏
举报
回复
Socket通讯的特点在于 通讯双方本来就是两个线程了,而且传统通讯模型下,是采用阻塞机制。NIO模型下,才变成了事件机制。而且也不是通知,只是负责网络通讯的线程把事件放入一个队列中,然后等待你所开发的程序所在线程去轮询它而已了。
线程执行顺序自行控制,可以使用wait/notify的方式来控制,但并不是唯一方式;令牌、优先级等模型也一样能实现这种控制。
通知机制本身就是一种模式。观察者模式也使用了通知机制。
concisedistinct
2012-03-03
打赏
举报
回复
socket通信使用BlockingQueue进行生产者和消费者同步,是否可以同时使用事件通知,而似乎事件通知是一个线程,而轮询Queue是两个线程,弄不清楚线程关系。。
请问线程执行顺序自行控制是使用wait()、notifyAll()来进行控制吗?
通知机制包括哪些方式啊?观察者模式是一种通知机制吗?
[Quote=引用 1 楼 ldh911 的回复:]
问题1,没咋看懂。
问题2,需要自行控制,没有现成机制。
问题3,线程跟队列似乎没有必然关系,事件通知倒是可以用于线程间的同步控制机制。
我有个关于BS架构下的聊天程序,就在线程间用了通知机制,可以看看。
http://blog.csdn.net/ldh911/article/details/7268879
[/Quote]
MiceRice
2012-03-03
打赏
举报
回复
问题1,没咋看懂。
问题2,需要自行控制,没有现成机制。
问题3,线程跟队列似乎没有必然关系,事件通知倒是可以用于线程间的同步控制机制。
我有个关于BS架构下的聊天程序,就在线程间用了通知机制,可以看看。
http://blog.csdn.net/ldh911/article/details/7268879
MiceRice
2012-03-03
打赏
举报
回复
嗯,挺好的,另一个做法就是:
◎ 分别用两条线程管理发送流和接收流;
◎ 接收流的线程只要收到消息,就扔进某List中;
◎ 发送的线程定期检查List,有内容就处理后往发送流写。
这种就是我说的:“接受这种并发,让它能够在并发的情况下仍然能正常执行”
concisedistinct
2012-03-03
打赏
举报
回复
两个系统间socket长连接通信,客户端与服务端建立连接后保持连接,服务端接收客户端请求后使用发送队列发送数据给客户端,接着等待客户端响应数据,使用接收队列接收客户端响应数据。服务端接收请求数据和接收响应数据会出现并发,这会儿使用变量事件,在发送数据到响应队列时,同时进行变量通知,从而保证系统第一回接收的数据是请求数据似乎可以了。。谢谢。
[Quote=引用 5 楼 ldh911 的回复:]
其实,如果你注意到的话,Java命名都叫做Stream,是流,其实并没有强调队列的概念。
你说的这种情况,有两种处理方式:
1、接受这种并发,让它能够在并发的情况下仍然能正常执行;
2、用wait/notify机制来控制。
但我觉得你可能把问题复杂化,或者说没有理解问题的本质,你能否说下你最原始的诉求是什么?就是最原始的向实现的效果?这样探讨起来可能更有目的性些。
光讨论……
[/Quote]
MiceRice
2012-03-03
打赏
举报
回复
其实,如果你注意到的话,Java命名都叫做Stream,是流,其实并没有强调队列的概念。
你说的这种情况,有两种处理方式:
1、接受这种并发,让它能够在并发的情况下仍然能正常执行;
2、用wait/notify机制来控制。
但我觉得你可能把问题复杂化,或者说没有理解问题的本质,你能否说下你最原始的诉求是什么?就是最原始的向实现的效果?这样探讨起来可能更有目的性些。
光讨论概念不行,这就跟讨论招数似的。大家都学散打,散打都只有那么20招,为啥有人挨打有人打人?关键看面到实战的时候怎么见招拆招,怎么组合拳上去打。
concisedistinct
2012-03-03
打赏
举报
回复
谢谢。socket通信长连接,服务端有一个发送队列,一个接收队列, 使用两个线程接收socket数据一个接收请求数据一个接收响应数据,但是这两个线程会出现并发,有时请求数据会放到响应队列中了,设置优先级保证不了线程顺序。。
[Quote=引用 3 楼 ldh911 的回复:]
Socket通讯的特点在于 通讯双方本来就是两个线程了,而且传统通讯模型下,是采用阻塞机制。NIO模型下,才变成了事件机制。而且也不是通知,只是负责网络通讯的线程把事件放入一个队列中,然后等待你所开发的程序所在线程去轮询它而已了。
线程执行顺序自行控制,可以使用wait/notify的方式来控制,但并不是唯一方式;令牌、优先级等模型也一样能实现这种控制。
通知机制本身就是一种模……
[/Quote]
100家大公司
java
笔试题汇总
从网上找到的在这里分享一下,可能有点不全或是普遍,但是有答案。
Java
程序设计技巧1001例
Java
语言1001例 请用超星阅读器打开这些文件
java
基础教程----精华版
java
基础教程----精华版,不得不下载的资源
阿里巴巴面试总结DOC版
阿里巴巴面试总结
java
多线程
编程实例
这篇文章主要介绍了
java
多线程
编程实例,分享了几则
多线程
的实例代码,具有一定参考价值,加深
多线程
编程的理解还是很有帮助的,需要的朋友可以参考下。1.相关知识:
Java
多线程
程序设计到的知识:(1)对同一个数量进行操作(2)对同一个对象进行操作(3)回调方法使用(4)线程同步,死锁
问题
(5)线程通信等等2.示例2.1三个售票窗口同时出售20张票程序分析: (1)票数要使用同一...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章