| 发表于:2007-05-17 11:45:306楼 得分:0 |
我们有下面一个一个lock.h #ifndef lock_h #define lock_h #include <pthread.h> class lock { public: lock(); ~lock(); void lock(); void unlock(); private: pthread_mutex_t _section; }; inline lock::lock() { pthread_mutex_init(&_section, null); } inline lock::~lock() { pthread_mutex_destroy(&_section); } inline void lock::lock() { pthread_mutex_lock(&_section); } inline void lock::unlock() { pthread_mutex_unlock(&_section); } 然后再另一个类中,比如 class a { public: fun(); private: lock *loglock; int a; } a::fun() { loglock-> lock(); file *fp = fopen( "file.txt ", "a "); ...... loglock-> unlock(); } 那么当一个a的对象执行到a::fun()时,如果是都线程,该类的其他线程对i和fp指向的文件还能访问吗? 其他的进程还能访问fp指向的文件吗 | | |
|