reloadData , like any other method in a view, should only be called from the main thread . Therefore, you do not need @synchronized , because there should only be one thread.
If you are in the background thread and want to reload the table view, use dispatch_async to make sure that the reboot occurs in the main thread:
dispatch_async(dispatch_get_main_queue(), ^{ [myTableView reloadData]; });
source share