对几个安全概念的体会
时间:2010-08-09 来源:rangzee
类型安全:指编程语言在任何时刻总是知道数据的类型。例如函数参数类型要求string型,则必须传string型数据给它,否则就会出错;如果传其它类型的数据,编程语言也能正常工作不会出错,则该编程语言不是类型安全的。
线程安全:指函数可以被多个线程安全的调用(注意,是安全的调用,但函数不一定同时工作),我理解的是它和可重入的区别在于“同时”二字,线程安全可以通过信号量来保证安全访问全局变量或静态变量,但无法保证同时工作,因为要等信号量,而可重入是根本不使用全局变量或静态变量,所以说可重入一定是线程安全的,线程安全但不一定可重入。另外,有些函数可以被多个线程同时调用,但是使用了静态或全局变量,导致结果出错,被认为不是线程安全的。
可重入:指函数可以同时被多个线程安全的调用,我的理解就是函数内部不使用全局变量或静态变量,所以可以同时重复进入这个函数,而不会产生问题。函数若使用静态或全局变量,则会导致多个线程同时操作而出错,即为不可重入的。
以上是本人的一点愚解,欢迎拍砖。
相关阅读 更多 +