avatar
问一个基础问题# Java - 爪哇娇娃
V*H
1
感觉
天是灰色的
路是灰色的
楼是灰色的
雨是灰色的
在一片死灰之中
走过两个孩子
一个鲜红
一个淡绿
The sky a grey is;
The road a grey is;
The house a grey is;
The rain a grey is.
And right out of the full lifeless grey
Walk two children -
One ruby-red,
One emerald.
中文41个字
英文41音节
avatar
z*n
2
假设我有一个synchronized method()。 意味着同一时间,对于特定object只有一个线
程可以访问它。 假设method()需要花1秒种才能结束。但是系统每100毫秒产生一个
新线程试图访问method(). 我猜想新线程会堆积起来。
这种状况一直持续下去,会有引起系统崩溃吗? 有什么好办法解决吗?
谢谢。
avatar
wh
3
不错,喜欢full lifeless。前面is a grey为什么要词序倒置?好像读起来有点别扭,
直叙is a grey也挺好啊。

【在 V*H 的大作中提到】
: 感觉
: 天是灰色的
: 路是灰色的
: 楼是灰色的
: 雨是灰色的
: 在一片死灰之中
: 走过两个孩子
: 一个鲜红
: 一个淡绿
: The sky a grey is;

avatar
m*r
4
没有办法. 你这个就是resource不够用. 如果你的code不能再优化的话.

【在 z****n 的大作中提到】
: 假设我有一个synchronized method()。 意味着同一时间,对于特定object只有一个线
: 程可以访问它。 假设method()需要花1秒种才能结束。但是系统每100毫秒产生一个
: 新线程试图访问method(). 我猜想新线程会堆积起来。
: 这种状况一直持续下去,会有引起系统崩溃吗? 有什么好办法解决吗?
: 谢谢。

avatar
V*H
5
貌似强调grey
avatar
z*n
6
这其实不是resource不够用的问题。很多时候,你是很难估计一个method要运行多少时
候的。只要method执行的时间比线程产生的时间长,这个问题就存在。

【在 m****r 的大作中提到】
: 没有办法. 你这个就是resource不够用. 如果你的code不能再优化的话.
avatar
d*e
7
###此帖已应当事人要求删除###

【在 V*H 的大作中提到】
: 貌似强调grey
avatar
m*r
8
为什么这个method需要被synchronize? 难道不是因为他在用一个resource不能让别人
用?

【在 z****n 的大作中提到】
: 这其实不是resource不够用的问题。很多时候,你是很难估计一个method要运行多少时
: 候的。只要method执行的时间比线程产生的时间长,这个问题就存在。

avatar
V*H
9
用ruby和emerald和grey做对比
avatar
p*w
10
典型的producer consumer问题。。。

【在 z****n 的大作中提到】
: 假设我有一个synchronized method()。 意味着同一时间,对于特定object只有一个线
: 程可以访问它。 假设method()需要花1秒种才能结束。但是系统每100毫秒产生一个
: 新线程试图访问method(). 我猜想新线程会堆积起来。
: 这种状况一直持续下去,会有引起系统崩溃吗? 有什么好办法解决吗?
: 谢谢。

avatar
O*e
11
interesting

【在 V*H 的大作中提到】
: 用ruby和emerald和grey做对比
avatar
s*t
12
You may create a thread pool object and set the max number of the threads,
if the pool is full, no more threads can be put in. Then the system won't
crash but most threads will not have a chance to run.
avatar
s*y
13
鲜红 shinning red
浅绿 pink green
avatar
g*g
14
threadpool will help only if there are more than one accesses to the
resource available. If the resource access is exclusive, it all depends
on how quick the processing is and how quick new thread being created.
Think of a printer with lots of jobs, yes, they need to wait.

【在 s******t 的大作中提到】
: You may create a thread pool object and set the max number of the threads,
: if the pool is full, no more threads can be put in. Then the system won't
: crash but most threads will not have a chance to run.

avatar
s*x
15
你谦虚了。

【在 d**e 的大作中提到】
: ###此帖已应当事人要求删除###
avatar
t*e
16
搞成stateless就不用synchronized了,或者prototype,多生产几个instances,每个
thread独占一个。这不就是spring framework了吗。

【在 m****r 的大作中提到】
: 为什么这个method需要被synchronize? 难道不是因为他在用一个resource不能让别人
: 用?

avatar
m*r
17
不是所有的resource都可以说不synchronize就不synchronize. 所以我才问他为什么
现在是synchronized的. goodbug给的printer的例子就很好.
anyway, 我感觉是code有问题了.

【在 t*******e 的大作中提到】
: 搞成stateless就不用synchronized了,或者prototype,多生产几个instances,每个
: thread独占一个。这不就是spring framework了吗。

avatar
F*n
18
让系统Check Availability不产生新线程。

【在 z****n 的大作中提到】
: 假设我有一个synchronized method()。 意味着同一时间,对于特定object只有一个线
: 程可以访问它。 假设method()需要花1秒种才能结束。但是系统每100毫秒产生一个
: 新线程试图访问method(). 我猜想新线程会堆积起来。
: 这种状况一直持续下去,会有引起系统崩溃吗? 有什么好办法解决吗?
: 谢谢。

avatar
t*e
19
你的问题是thread的生成不受你的控制,这个无解。否则自己定义了有上界的
threadpool就可以了。

【在 m****r 的大作中提到】
: 不是所有的resource都可以说不synchronize就不synchronize. 所以我才问他为什么
: 现在是synchronized的. goodbug给的printer的例子就很好.
: anyway, 我感觉是code有问题了.

avatar
m*r
20
这个... 不是我的问题. 是别人发的贴.
我认为他一个synchronized method需要几分钟, 这个不正常. 需要优化. 把真正需
要synchronized的地方synchronized.

【在 t*******e 的大作中提到】
: 你的问题是thread的生成不受你的控制,这个无解。否则自己定义了有上界的
: threadpool就可以了。

avatar
t*e
21
抱歉,我也是抽空看一眼,没看仔细。

【在 m****r 的大作中提到】
: 这个... 不是我的问题. 是别人发的贴.
: 我认为他一个synchronized method需要几分钟, 这个不正常. 需要优化. 把真正需
: 要synchronized的地方synchronized.

avatar
i*l
22
synchronized的部分显然要越短小越好, 他倒好, 跑个几分钟。
这个lock的粒度有问题。似乎应该这样,一次取一大块数据, 然后取消锁,
剩下的对数据的操作都是thread-local的。

【在 m****r 的大作中提到】
: 这个... 不是我的问题. 是别人发的贴.
: 我认为他一个synchronized method需要几分钟, 这个不正常. 需要优化. 把真正需
: 要synchronized的地方synchronized.

avatar
r*s
23
这个基础问题可以作个interview question,
呵呵

【在 i******l 的大作中提到】
: synchronized的部分显然要越短小越好, 他倒好, 跑个几分钟。
: 这个lock的粒度有问题。似乎应该这样,一次取一大块数据, 然后取消锁,
: 剩下的对数据的操作都是thread-local的。

avatar
m*r
24
所以我一直在说, 需要看看这个method里面在干吗. 我怀疑你的怀疑是正确的.

【在 i******l 的大作中提到】
: synchronized的部分显然要越短小越好, 他倒好, 跑个几分钟。
: 这个lock的粒度有问题。似乎应该这样,一次取一大块数据, 然后取消锁,
: 剩下的对数据的操作都是thread-local的。

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