可重入与线程安全

一个线程安全的函数可以同时被多个线程调用,即便是这些调用使用了共享数据。因为该共享数据的所有实例都被序列化了。

一个可重入的函数也可以同时被多个线程调用,但是只能是在每个调用使用自己的数据时。

因此,一个线程安全的函数总是可重入的,但是一个可重入的函数不总是线程安全的。

 

推而广之,如果只要每个线程使用一个类的不同实例,该类的成员函数就可以被多个线程安全地调用,那么这个类被称为可重入的;如果即使所有的线程使用一个类的相同实例,该类的成员函数也可以被多个线程安全调用,那么这个类被称为线程安全的。

posted @ 2014-05-12 13:35  ITtecman  阅读(341)  评论(0编辑  收藏  举报