1 什么时候需要同步?
2 在linux中, 线程同步机制有哪些?各适用在怎样的条件?进程同步有哪些?对应的数据类型、API 各有哪些?
在当前的POSIX标准中有三种线程同步机制,它们分别是:互斥量、读写锁、条件变量。
关于进程同步机制,POSIX定义了一种信号灯,而system V 定义了另外一种信号灯。
互斥量:
pthread_mutex_t
pthread_mutex_init();
pthread_mutex_lock();
pthread_mutex_unlock();
pthread_mutex_destroy();
读写锁:
pthread_rwlock_t
pthread_rwlock_init();
pthread_rwlock_rdlock();
pthread_rwlock_wrlock();
pthread_rwlock_unlock();
pthread_rwlock_destroy();
条件变量:
pthread_cond_t
pthread_cond_init();
pthreadf_cond_wait();
pthread_cond_signal();
pthread_cond_destroy();
POSIX信号灯:
sem_t
sem_open();
sem_init();
sem_wait();
sem_post();
sem_close();
sem_unlink();
SysV信号灯:
semget();
semop();
semctl();
3 线程同步机制和进程同步机制有什么区别?哪个使用的范围更大?
显然进程同步机制可以用于线程同步,而线程同步机制不能用于进程同步。
阅读(3878) | 评论(3) | 转发(0) |