Forums Register Login

Can you synchronize an array?

+Pie Number of slices to send: Send
I'm reading in Using Java 2 by Joseph L. Weber that "Array declarations are composed of the following parts: Array modifiers | Optional |The keywords public, protected, private, or synchronized."
I understand how an array can be public, protected or private; but synchronized.
The book was publish in 1998. Has this changed?
d
+Pie Number of slices to send: Send
Hi David,
Welcome to JavaRanch.
An array is an Object. So, just as you can synchronzie on any Object, you can sync an array.
For example:

That's pretty useless code, but it does demonstrate that arrays are instantiated with new like any Object and have valid wait() and notifyAll() methods.
Michael Morris
+Pie Number of slices to send: Send
Michael,
Thanks. Somehow I had it in my head that the code was written...
synchronized static int[] test = new int[5];
d
+Pie Number of slices to send: Send
I would have thought the same thing David did, based on what he quoted. And no, you can't declare an array as synchronized. That's not something that's changed - you've never been able to declare an array aynchronized. The book is wrong. You can synchronize on an array (after its declaration and instantiation) as Michael showed - but you can't use synchronized as a modifier in the declaration.
+Pie Number of slices to send: Send
I guess I never considered that anyone would conceive of declaring a reference as synchronized. I just assumed that the intended meaning was that unlike a primitive, an array could be used as the reference of a synchronized block. Surely that was the author's intent though admittedly it was not phrased that way.
Michael Morris
+Pie Number of slices to send: Send
Can someone briefly explain what synchronized means, and how it affects an object? Thanks!
+Pie Number of slices to send: Send
You should probably post your question as a new topic. However, in brief, synchronization deals with mult-threaded programs and controlling data access. You should first learn about threads before you delve into synchronization. You can find plenty of stuff about threads on the Web.I suggest you start with the tutorials on Sun's web site.
HTH
Layne
Seriously? That's what you're going with? I prefer this tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 5682 times.
Similar Threads
what are all the modifiers in java...
Reg.Interface declaration
Thread class
What is the difference between instance variables and non local variables
Static variable Question?
Thread Boost feature
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 19:48:26.