早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立 ...
什么是线程安全 一个函数被多个并发线程反复调用时,它会一直产生正确的结果,则该函数是线程安全函数。 那么什么又是可重入函数 当一个函数在被一个线程调用时,可以允许被其他线程再调用。即两个函数 同时 发生。则该函数是可重入函数。 所以,显而易见,如果一个函数是可重入的,那么它肯定是线程安全的。但反之未然,一个函数是线程安全的,却未必是可重入的。比如我们在一个函数中调用到了一个全局变量NUM用来标记 ...
2015-07-17 21:09 0 3144 推荐指数:
早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立 ...
线程安全:一个函数被称为线程安全的(thread-safe),当且仅当被多个并发进程反复调用时,它会一直产生正确的结果。如果一个函数不是线程安全的,我们就说它是线程不安全的(thread-unsafe)。我们定义四类(有相交的)线程不安全函数。 第1类:不保护共享变量的函数 将这类线程不安全 ...
http://lists.gnu.org/archive/html/bug-commoncpp/2004-05/msg00006.html 本意是找一个线程安全并可重入的 求线程运行时间的函数。 time(), gettimeofday() and possibly localtime ...
strtok_r函数---字符串分割函数 函数原型: char *strtok_r(char *str, const char *delim, char **saveptr); 参数: str:被分割的字符串,若str为NULL,则被分割的字符串为*saveptr ...
工作中遇到的问题:如何在多线程的程序中同时记录日志? 最初图省事,使用了最原始的open函数来写日志,因为开始使用的写文件模式的是追加('a'),发现并没有线程不安全的现象,各个线程的的日志信息都写入到了日志文件中。 后来将写文件模式改成了只写默认('w'),这时候线程不安全的问题就显露出来 ...
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误。谢谢! 博客已经迁移到这里啦 如果我们在数学领域里工作,我们可能会发现用一个类来表示多项式会很方便。在这个类中,如果有一个函数能计算多选式的根(也就是,多项式等于0时,各个未知量 ...
公司的机器最近遇到一个bug(其实这个bug一年前就出现过,只是未引起重视),现象是这样的:在生产环境中,用户连续打印票的时候,中间某张票的一个时间可能会出问题,该时间本来是一个未来的时间,却被打 ...