社区
Java SE
帖子详情
关于java多线程问题
concisedistinct
2012-03-03 09:17:12
关于java多线程问题
1、
在一个线程中等待一个队列返回结果值,是否可以在该线程中设置结果值并放入队列,从而使得等待的地方继续执行?
2、
是否可以给线程执行设置顺序?
3、
事件通知与队列、线程间如何交互?
谢谢。
...全文
94
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]
JAVA
多线程
精讲下
通过本门课程的学习你可以深刻理解
Java
多线程
的原理及实现运行机制,深刻学习
多线程
的生命周期、调度、控制等内容。
多线程
精讲下课程内容涵盖如下:l 线程的同步(线程安全
问题
)l 线程的死锁l ...
Java
多线程
之线程安全
问题
Java
多线程
中的线程安全
问题
, 解决方法, 线程安全和不安全的标准类.
Java
多线程
(超详细!)
注意:一个进程可以启动多个线程。 eg.对于
java
程序来说,当在DOS命令窗口中输入:
java
HelloWorld 回车之后。 会先启动JVM,而JVM就是一个进程。 JVM再启动一个主线程调用main方法。 同时再启动一个垃圾回收线程...
Java
多线程
超详解
随着计算机的配置越来越高,我们需要将进程进一步优化,细分为线程,充分提高图形化界面的
多线程
的开发。这就要求对线程的掌握很彻底。 那么话不多说,今天本帅将记录自己线程的学习。 线程的相关API //获取当前...
Java
多线程
编程基础(详细)
Java
多线程
编程基础进程与线程
多线程
实现Thread类实现
多线程
Runnable接口实现
多线程
Callable接口实现
多线程
多线程
运行状态
多线程
常用操作方法线程的命名和获取线程休眠线程中断线程强制执行线程让步线程优先级设定...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章