View Single Post
Old 07-30-2008   #1 (permalink)
Curious


 
 

Use "lock" in three methods to prevent shared-memory corruption

I have an arraylist used in three separate methods.

In method #1 (event method), some items are removed from the arraylist
if certain conditions are met;

In method #2 (event method), properties of some items are modified if
certain conditions are met;

In method #3, it loops through each item in the arraylist without
changing any item on the arraylist or removing any item from the
arraylist. In other words, this is "read-only" type of operation.

Since both #1 and #2 are event methods and may happen anytime, there's
a chance that #1, #2, and #3 all happen at the same time, then I'll
run into a memory issue when one process is modifying the arraylist,
other process(es) are accessing the arraylist.

I plan to use "lock" in all of these three methods. I have questions:

1) I know "lock" is typically used in two methods. Will there be an
issue if "lock" is used in more than two methods?

2) If I use "lock" in #1 and #2, will locking the process cause the
associated **event objects** to expire since they are dynamic in
nature and only live for a very short period of time?

I would appreciate any input!
My System SpecsSystem Spec