Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #3357
| From | byhesed <byhesed@gmail.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: A question about synchronized threads |
| Date | 2011-04-29 09:09 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <f56d0826-0b46-4822-9059-22159aebeec2@d26g2000prn.googlegroups.com> (permalink) |
| References | <3f249d87-aaf8-4732-9ee8-fd112cf82553@f31g2000pri.googlegroups.com> <ipen7h$dip$1@dont-email.me> |
On 4월30일, 오전12시58분, Daniele Futtorovic <da.futt.n...@laposte-dot-
net.invalid> wrote:
> On 29/04/2011 17:35, byhesed allegedly wrote:
>
>
>
>
>
>
>
>
>
> > public class A {
> > synchronized void m1() { ... }
> > synchronized void m2() { ... }
> > void m3() { ... }
> > }
>
> > The book explains above code:
>
> > Given an instance a of class A, when one thread is executing
> > a.m1(),
> > another thread will be prohibited from executing a.m1() or a.m2().
>
> > I have a question.
>
> > The explanation means than when one thread is executing m1() method,
> > No other threads can execute m1() or m2() thread.
>
> > Is it correct?
>
> Yes, it is correct.
>
> > If it is correct, how can I handle it better?
> > I think it is too ineffectual. Does anybody know?
>
> By defining yourself the monitor you synchronise on.
>
> When you declare a method synchronized, the code will use the instance
> of which that method is a member as the monitor. In other words, the
> code above is equivalent to this:
>
> public class A {
> void m1() {
> synchronized( this ){ ... }
> }
> void m2() {
> synchronized( this ){ ... }
> }
> void m3() { ... }
> }
>
> Both method lock on the same monitor, so when one is executed, no other
> thread can execute any of them.
>
> If you don't want that interdependency, you can define monitors yourself:
>
> public class A {
> private final Object
> m1Monitor = new Object(),
> m2Monitor = new Object()
> ;
> void m1() {
> synchronized( m1Monitor ){ ... }
> }
> void m2() {
> synchronized( m2Monitor ){ ... }
> }
> void m3() { ... }
> }
>
> That way, a thread executing m1 will not prevent another thread from
> executing m2, only m1 itself.
>
> --
> DF.
> An escaped convict once said to me:
> "Alcatraz is the place to be"
Thank you. I understand what you elaborated on.
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar
A question about synchronized threads byhesed <byhesed@gmail.com> - 2011-04-29 08:35 -0700
Re: A question about synchronized threads Lew <noone@lewscanon.com> - 2011-04-29 11:53 -0400
Re: A question about synchronized threads byhesed <byhesed@gmail.com> - 2011-04-29 09:12 -0700
Re: A question about synchronized threads Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-04-29 21:01 -0400
Re: A question about synchronized threads byhesed <byhesed@gmail.com> - 2011-04-29 18:43 -0700
Re: A question about synchronized threads Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-04-29 17:58 +0200
Re: A question about synchronized threads byhesed <byhesed@gmail.com> - 2011-04-29 09:09 -0700
Re: A question about synchronized threads markspace <-@.> - 2011-04-29 11:11 -0700
Re: A question about synchronized threads Daniele Futtorovic <da.futt.news@laposte-dot-net.invalid> - 2011-04-29 20:19 +0200
Re: A question about synchronized threads markspace <-@.> - 2011-04-29 15:21 -0700
Re: A question about synchronized threads Patricia Shanahan <pats@acm.org> - 2011-04-29 21:10 -0700
Re: A question about synchronized threads dagon@dagon.net (Dagon) - 2011-04-29 15:55 -0700
Re: A question about synchronized threads Alice <quaxx1108@example.com> - 2011-04-29 20:08 -0400
Re: A question about synchronized threads markspace <-@.> - 2011-04-29 19:07 -0700
Re: A question about synchronized threads byhesed <byhesed@gmail.com> - 2011-04-29 18:49 -0700
Re: A question about synchronized threads Lew <noone@lewscanon.com> - 2011-05-03 18:57 -0400
Re: A question about synchronized threads Deeyana <d.awlberg@hotmail.invalid> - 2011-05-04 00:17 +0000
Re: A question about synchronized threads Lew <noone@lewscanon.com> - 2011-05-04 12:45 -0400
Re: A question about synchronized threads Deeyana <d.awlberg@hotmail.invalid> - 2011-05-04 19:59 +0000
csiph-web