- 浏览: 15666 次
- 性别:
- 来自: 济南
-
最新评论
-
jackra:
从当年的第一天到第二年的第一天不就可以了噻?为什么一定要函数匹 ...
Oracle 函数索引的建立及使用 -
coolzyt:
Callable
主线程怎样从子线程当中得到值? -
baallee:
<div class="quote_title ...
主线程怎样从子线程当中得到值? -
galaxystar:
<div class="quote_title ...
主线程怎样从子线程当中得到值? -
baallee:
你可以参考使用CountDownLatch
http://gc ...
主线程怎样从子线程当中得到值?
评论
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/concurrent/CountDownLatch.html
CountDownLatch是信号量的一种用法之一, 与这里的父子线程调用无关, 楼主的需求中并没说要限制被调线程数量.
并且, CountDownLatch本身也是不适用的, 因为它会处理一次信号量操作, 然后就销毁了.
Semaphore是可以重置的.
CountDownLatch启到阻塞线程而已。获取值还要用其他方法。
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/concurrent/CountDownLatch.html
CountDownLatch是信号量的一种用法之一, 与这里的父子线程调用无关, 楼主的需求中并没说要限制被调线程数量.
并且, CountDownLatch本身也是不适用的, 因为它会处理一次信号量操作, 然后就销毁了.
Semaphore是可以重置的.
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/concurrent/CountDownLatch.html
子线程中处理数据库的插入操作,调用一次写入数据库一次,每次主线程对子线程调用时写一次数据库!
写完数据库后我需要从主线程当中调用刚才在子线程当中写入库的数据。
我的理解是, 主线程调用子线程中的插入操作并得到一个插入后记录的序列id, 对吧?
如果不是, 那主线程的数据通过子线程插入后, 为什么还需要从子线程中得到数据, 数据不就是主线程给子线程的吗?
另外, 主线程应该是起一个新的线程来处理插入的吧, 线程间只能起线程或共享资源, 没有调用的说法吧?
并且, 我感觉主线程调用子线程插入, 为什么要在父子两根线程里进行呢?
白白浪费同步开销.
最后, 如果要解决线程间的数据通信, 并且, 主线程要等待子线程, 那么1.5包里的Condition可以胜任.
不用wait-notify是因为notify是随机唤醒主线程的.
子线程执行完操作后 notifyAll 唤醒主线程
猪线程继续执行读取子线程结果的操作
线程间传递数据可以考虑静态变量