社区
Java SE
帖子详情
关于java多线程问题
concisedistinct
2012-03-03 09:17:12
关于java多线程问题
1、
在一个线程中等待一个队列返回结果值,是否可以在该线程中设置结果值并放入队列,从而使得等待的地方继续执行?
2、
是否可以给线程执行设置顺序?
3、
事件通知与队列、线程间如何交互?
谢谢。
...全文
96
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
笔试题汇总,涵盖了
Java
的多个方面,包括
Java
基础、
Java
面向对象编程、
Java
多线程
、
Java
网络编程、
Java
数据库编程等。
Java
基础 1.
Java
的基本数据类型有哪些? 答:byte、short、int、long、float、...
Java
程序设计技巧1001例
5. **
多线程
**:
Java
提供了强大的
多线程
支持,100.008和100.009可能讲解了线程的创建、同步机制(如synchronized关键字、wait()、notify()方法)、线程池的使用,以及并发编程中的各种
问题
和解决方案。 6. **输入...
java
基础教程----精华版
- 线程同步机制,如synchronized关键字,Lock接口,避免
多线程
环境下数据不一致
问题
。 8. **网络编程**: - 使用Socket编程进行客户端/服务器通信,如ServerSocket和Socket类。 - URL和URLConnection类用于访问...
阿里巴巴面试总结DOC版
本资源摘要信息主要总结了阿里巴巴面试中的
问题
和答案,涵盖了
Java
编程语言、设计模式、JVM 内存模型、ClassLoader 结构、UML 模型图、OSGi 框架、Spring 框架、iBatis 框架、
Java
序列化、NIO 编程、HTTP 协议、...
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写文章