对几个安全概念的体会

类型安全:指编程语言在任何时刻总是知道数据的类型。例如函数参数类型要求string型,则必须传string型数据给它,否则就会出错;如果传其它类型的数据,编程语言也能正常工作不会出错,则该编程语言不是类型安全的。

 

线程安全:指函数可以被多个线程安全的调用(注意,是安全的调用,但函数不一定同时工作),我理解的是它和可重入的区别在于“同时”二字,线程安全可以通过信号量来保证安全访问全局变量或静态变量,但无法保证同时工作,因为要等信号量,而可重入是根本不使用全局变量或静态变量,所以说可重入一定是线程安全的,线程安全但不一定可重入。另外,有些函数可以被多个线程同时调用,但是使用了静态或全局变量,导致结果出错,被认为不是线程安全的。

 

可重入:指函数可以同时被多个线程安全的调用,我的理解就是函数内部不使用全局变量或静态变量,所以可以同时重复进入这个函数,而不会产生问题。函数若使用静态或全局变量,则会导致多个线程同时操作而出错,即为不可重入的。

 

以上是本人的一点愚解,欢迎拍砖。

posted @ 2010-08-09 11:32  -仁者-  阅读(129)  评论(0编辑  收藏  举报