通常,只要没有以用户感到惊讶的方式运行用户回叫,就可以安全地将函数的工作分配到不同的线程上,以并行方式进行工作吗?
这里的假设是,没有用户回调传递给该函数,或者回调总是在“主”线程(该函数之一)中运行。
问题是一个函数,它不记录任何线程或与线程的关系,并且历史上不是基于线程的;这样的功能可以决定在不中断任何用户调用的情况下在不同线程中运行代码吗?
显然,在任何情况下,该函数都将等待所有线程(或发送到工作线程的工作单元)完成对数据的处理,然后再返回。”>
只要没有使用户感到惊讶的方式运行用户回叫,通常就可以安全地将函数的工作分配到不同的线程上,并行执行工作吗?这里的假设...
通常,这是不安全的。那里有很多非线程安全的函数,您不能假设所获得的函数没有使用它们。