Redian新闻
>
来来来,给偶解决一个问题
avatar
来来来,给偶解决一个问题# Java - 爪哇娇娃
w*r
1
各位老大, 在java下面没有function pointer,偶现在想做一个thread schedular
也就是一个main thread,下面好多subthread, main thread可以在任何时刻告诉
subthread,你们可以干活了,于是他们就是干活, mainthread等到所有的sub
干完了才可以继续,而且不是每一次不是都要所有的sub干活,比如有时候我要sub 2,3
有时我要sub 3,4
没有fuc pointer,这个东西真的很烦,如果是每次都create thread,这样overhead很大
我现在的做法是sub thread里面是一个infinite loop ,thread对象hold一个object
refreence,然后在loop里面call obj.job(); wait()...
再用一个object控制wait 和notifyall的行为………………
有没有好一些方法?????
avatar
t*l
2
use reflections
or
use interfaces

【在 w*r 的大作中提到】
: 各位老大, 在java下面没有function pointer,偶现在想做一个thread schedular
: 也就是一个main thread,下面好多subthread, main thread可以在任何时刻告诉
: subthread,你们可以干活了,于是他们就是干活, mainthread等到所有的sub
: 干完了才可以继续,而且不是每一次不是都要所有的sub干活,比如有时候我要sub 2,3
: 有时我要sub 3,4
: 没有fuc pointer,这个东西真的很烦,如果是每次都create thread,这样overhead很大
: 我现在的做法是sub thread里面是一个infinite loop ,thread对象hold一个object
: refreence,然后在loop里面call obj.job(); wait()...
: 再用一个object控制wait 和notifyall的行为………………
: 有没有好一些方法?????

avatar
KG
3
I would be reluctant to use wait/notify, which is source of a lot of
deadlocks. Try use observer pattern, or reflection if you want a function
pointer, per se...

【在 w*r 的大作中提到】
: 各位老大, 在java下面没有function pointer,偶现在想做一个thread schedular
: 也就是一个main thread,下面好多subthread, main thread可以在任何时刻告诉
: subthread,你们可以干活了,于是他们就是干活, mainthread等到所有的sub
: 干完了才可以继续,而且不是每一次不是都要所有的sub干活,比如有时候我要sub 2,3
: 有时我要sub 3,4
: 没有fuc pointer,这个东西真的很烦,如果是每次都create thread,这样overhead很大
: 我现在的做法是sub thread里面是一个infinite loop ,thread对象hold一个object
: refreence,然后在loop里面call obj.job(); wait()...
: 再用一个object控制wait 和notifyall的行为………………
: 有没有好一些方法?????

avatar
w*r
4
thanks a lot... please give me a hint on the observer pattern.....
I would like to see some simplme imple. about it.. namely, this pattern
sounds exactly like what I want...

【在 KG 的大作中提到】
: I would be reluctant to use wait/notify, which is source of a lot of
: deadlocks. Try use observer pattern, or reflection if you want a function
: pointer, per se...

avatar
B*N
5
what r u talking about?

2,3


【在 t*******l 的大作中提到】
: use reflections
: or
: use interfaces

avatar
xt
6

It has deadlocks if you do not do it right. The truth is it is not
very hard to do it right.

【在 KG 的大作中提到】
: I would be reluctant to use wait/notify, which is source of a lot of
: deadlocks. Try use observer pattern, or reflection if you want a function
: pointer, per se...

avatar
t*l
7

i am talking about java's counterpart for C's function pointer,
what's your question?
thread,这样overhead很
,thread对象hold一个object

【在 B******N 的大作中提到】
: what r u talking about?
:
: 2,3
: 大

avatar
w*r
8
ft... no one just come forward to explain this observer pattern
to me????

【在 xt 的大作中提到】
:
: It has deadlocks if you do not do it right. The truth is it is not
: very hard to do it right.

avatar
c*g
9
能不能讲得再清楚点function pointer是如何可以让你比较容易实现?
一般而论,java 用interface实现类似function pointer/callback的功能。
for instance, you define:
interface MyInterface {
void pulbic callback(int i);
}
then you can have some class such as:
Class C1 implements Foo {...}, Class C2 implements Fol {};
then in the place where you intend to have a function pointer:
public call(Foo f) {...}
you can pass an object of C1 or an object of C2, such as call(c1),
call(c2).
If you only care about a simple notification functionality,

【在 w*r 的大作中提到】
: 各位老大, 在java下面没有function pointer,偶现在想做一个thread schedular
: 也就是一个main thread,下面好多subthread, main thread可以在任何时刻告诉
: subthread,你们可以干活了,于是他们就是干活, mainthread等到所有的sub
: 干完了才可以继续,而且不是每一次不是都要所有的sub干活,比如有时候我要sub 2,3
: 有时我要sub 3,4
: 没有fuc pointer,这个东西真的很烦,如果是每次都create thread,这样overhead很大
: 我现在的做法是sub thread里面是一个infinite loop ,thread对象hold一个object
: refreence,然后在loop里面call obj.job(); wait()...
: 再用一个object控制wait 和notifyall的行为………………
: 有没有好一些方法?????

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。