我最近在memcached.h
的文件中看到memcached的源代碼。我發現這段代碼:while(pthread_mutex_trylock(mutex))的點是什麼
static inline int mutex_lock(pthread_mutex_t *mutex)
{
while (pthread_mutex_trylock(mutex));
return 0;
}
我只是想知道爲什麼不直接使用pthread_mutex_lock
。上述代碼的優點是什麼?
sleep 1 or 2 seconds
pthread_mutex_trylock
看起來更合理,因爲它不會浪費CPU資源。
任何想法?
謝謝。
我會問在[memcached論壇](https://groups.google.com/forum/#!forum/memcached)上,我覺得它是一個錯誤(這在實踐中可能並不重要,因爲它們很少爭用)... –