Open In App

C# | Check if ArrayList is Synchronized (thread safe)

Improve
Improve
Like Article
Like
Save
Share
Report

ArrayList.IsSynchronized Property is used to get a value which indicate whether access to the ArrayList is synchronized (thread safe).

Syntax:

public virtual bool IsSynchronized { get; }

Return Value: This property returns the true if access to the ArrayList is synchronized (thread safe) otherwise it returns false. The default is false.

Below programs illustrate the use of above-discussed property:

Example 1:




// C# code to check if ArrayList
// Is Synchronized or not
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating an ArrayList
        ArrayList myList = new ArrayList();
  
        // Adding elements to ArrayList
        myList.Add("A");
        myList.Add("B");
        myList.Add("C");
        myList.Add("D");
        myList.Add("E");
        myList.Add("F");
  
        // Creates a synchronized
        // wrapper around the ArrayList
        ArrayList smyList = ArrayList.Synchronized(myList);
  
        // Displays the synchronization
        // status of both ArrayList
        Console.WriteLine("myList is {0}.", myList.IsSynchronized ?
                               "Synchronized" : "Not Synchronized");
  
        Console.WriteLine("smyList is {0}.", smyList.IsSynchronized ? 
                                "Synchronized" : "Not Synchronized");
    }
}


Output:

myList is Not Synchronized.
smyList is Synchronized.

Example 2:




// C# code to check if ArrayList
// Is Synchronized or not
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating an ArrayList
        ArrayList myList = new ArrayList();
  
        // Adding elements to ArrayList
        myList.Add(1);
        myList.Add(2);
        myList.Add(3);
        myList.Add(4);
        myList.Add(5);
        myList.Add(5);
  
        // the default is false for 
        // IsSynchronized property
        Console.WriteLine(myList.IsSynchronized);
    }
}


Output:

False

Note:

  • Retrieving the value of this property is an O(1) operation.
  • To guarantee the thread safety of the ArrayList, all operations must be done through the wrapper returned by the Synchronized method.
  • Enumerating through a collection is intrinsically not a thread-safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception.

Reference:



Last Updated : 01 Feb, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads