For questions 55–57, consider three threads running concurr…
For questions 55–57, consider three threads running concurrently that transfer funds between bank accounts. Each account has its own mutex lock. mutex_t lock_A, lock_B, lock_C; void *thread1(void *arg) { mutex_lock(&lock_A); mutex_lock(&lock_B); transfer(account_A, account_B, 100); mutex_unlock(&lock_B); mutex_unlock(&lock_A); return NULL; } void *thread2(void *arg) { mutex_lock(&lock_B); mutex_lock(&lock_C); transfer(account_B, account_C, 50); mutex_unlock(&lock_C); mutex_unlock(&lock_B); return NULL; } void *thread3(void *arg) { mutex_lock(&lock_C); mutex_lock(&lock_A); transfer(account_C, account_A, 75); mutex_unlock(&lock_A); mutex_unlock(&lock_C); return NULL; }