纠结了好久了。
1.客户端发送查询聊天记录的请求,服务端就会产生一个线程A,通过这个线程服务端可以向客户端回馈信息。
由于聊天记录不需要时刻更新,所以这种A线程一产生就会在服务端那里阻塞(或挂起)。
2.这时候客户端又传来一个发送信息的请求,此时服务端也会产生一个线程B,通过这个线程来更新服务端保存的聊天记录。
3.B执行结束后,聊天记录更新了,所以需要唤起A线程,反馈记录给客户端。网上查了半天,wait()和notify()怎么一用就报错...
谁能提供点可行的代码学习一下吗?
1.客户端发送查询聊天记录的请求,服务端就会产生一个线程A,通过这个线程服务端可以向客户端回馈信息。
由于聊天记录不需要时刻更新,所以这种A线程一产生就会在服务端那里阻塞(或挂起)。
2.这时候客户端又传来一个发送信息的请求,此时服务端也会产生一个线程B,通过这个线程来更新服务端保存的聊天记录。
3.B执行结束后,聊天记录更新了,所以需要唤起A线程,反馈记录给客户端。网上查了半天,wait()和notify()怎么一用就报错...
谁能提供点可行的代码学习一下吗?
是的,可以不返回。
A、B两个线程可以说是没多大联系,只是A一直挂起,然后服务器处理完B请求后要唤起A。
synchronized (object) {
}
http://blog.csdn.net/ldh911/article/details/7268879
多线程这块一直没接触,菜啊。
应该是B在“结束前”唤醒A。A中:
synchronized(某公用对象) {
某公用对象.wait();
}B中:
public void run() {
....
synchronized(某公用对象) {
某公用对象.notifyAll();
}
}
样例代码是给你参考发言者线程如何唤醒其它线程的过程。