社区
Java SE
帖子详情
关于java多线程问题
concisedistinct
2012-03-03 09:17:12
关于java多线程问题
1、
在一个线程中等待一个队列返回结果值,是否可以在该线程中设置结果值并放入队列,从而使得等待的地方继续执行?
2、
是否可以给线程执行设置顺序?
3、
事件通知与队列、线程间如何交互?
谢谢。
...全文
102
8
打赏
收藏
关于java多线程问题
关于java多线程问题 1、 在一个线程中等待一个队列返回结果值,是否可以在该线程中设置结果值并放入队列,从而使得等待的地方继续执行? 2、 是否可以给线程执行设置顺序? 3、 事件通知与队列、线程间如何交互? 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
网络编程第三版.pdf
3. **
多线程
与并发**:在网络编程中,
多线程
和并发处理是必不可少的,书中会讲解如何在
Java
中管理线程,以及如何处理并发
问题
,如同步和锁机制。 4. **URL和HTTP**:
Java
通过URL类提供了访问Web资源的能力,而HTTP...
Java
程序设计技巧1001例
5. **
多线程
**:
Java
提供了强大的
多线程
支持,100.008和100.009可能讲解了线程的创建、同步机制(如synchronized关键字、wait()、notify()方法)、线程池的使用,以及并发编程中的各种
问题
和解决方案。 6. **输入...
阿里巴巴面试总结DOC版
本资源摘要信息主要总结了阿里巴巴面试中的
问题
和答案,涵盖了
Java
编程语言、设计模式、JVM 内存模型、ClassLoader 结构、UML 模型图、OSGi 框架、Spring 框架、iBatis 框架、
Java
序列化、NIO 编程、HTTP 协议、...
Java
多线程
编程基础(详细)
Java
多线程
编程基础进程与线程
多线程
实现Thread类实现
多线程
Runnable接口实现
多线程
Callable接口实现
多线程
多线程
运行状态
多线程
常用操作方法线程的命名和获取线程休眠线程中断线程强制执行线程让步线程优先级设定...
Java SE
62,628
社区成员
307,261
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章