スレッドセーフ変数を作成する必要がありますか? mainThread と dispatch_async(dispatch_get_main_queue() でのみ mydata を使用します。
-(void) mainThread
{
mydata = 55;
}
-(void) concurrentThread
{
dispatch_async(dispatch_get_main_queue(), ^
{
mydata = 77;
});
}