|
|
2
2
是的,您拥有的synchronized语句将按您的预期工作。我只添加一条注释,您接受套接字连接的线程将阻塞注册表.put(id,serverThread);当您在另一个线程的synchronized部分时。这意味着您的服务器在处理通知时不会处理任何新的传入请求。。。。。 您可能需要考虑移动put语句(当然要将serverThread改为this) 到ServerThread的run方法的第一行。这样,如果callSomePublicMethodOnThread结束了长时间的处理,您就不会阻止传入连接。 |
|
|
3
1
为了使一切更容易,我将使用ConcurrentHashMap(http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/ConcurrentHashMap.html)所以您不需要在循环中使用sync块,因为concurrentHashMap使用不同类型的迭代器(不是fail fast迭代器),它不会引发concurrentModificationException,你也会有更好的表现。 |
|
|
4
0
代码中有一个问题,不能将方法定义为“private void notify()”,因为“notify()”是在对象类中定义的方法 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
H3007 · 并发运行python子进程似乎不是并发的 1 年前 |
|
|
The Oddler · TVar会阻止读取直到更改吗? 1 年前 |
|
|
Wang Tuma · 使用信号量的c++并发问题:按顺序打印 1 年前 |
|
|
Marcel Batista · 在不同线程中更新密钥时的字典线程安全 2 年前 |
|
|
rico · 当volatile关键字真的是必要的? 2 年前 |