我使用的是一个外部库,我既不能控制它,也不知道它的内部结构(让我们称它为专有回调)。
我知道我有一个名为callbacks的类,它有两个布尔变量:
class callbacks : public proprietarycallbacks {
bool a = false;
bool b = false;
virtual callbackHandler() {
cout "callback received\n";
b = true;
}
}
然后我有另一个类,它继承自回调类:
class MyObject : public callbacks
即使在使用Tensorflow CPU设置tf.config.threading.set_inter_op_parallelism_threads(1)和tf.config.threading.set_intra_op_parallelism_threads(1) Keras (运行一个简单的CNN模型适合)之后,在linux机器上也会创建太多的线程。无论我尝试什么,它似乎是在创建94个线程,同时经历了合适的时代。已经尝试过使用tf.compat.v1.ConfigProto设置,但是没有任何帮助。如何限制线程数?
创建线程时,TThread将一个名为ThreadProc的线程函数传递给CreateThread。这是TThread使用的ThreadProc
function ThreadProc(Thread: TThread): Integer;
var
FreeThread: Boolean;
begin
TThread.FCurrentThread := Thread;
{$IF Defined(MACOS)}
if Thread.FSuspended then
pthread_mutex_lock(Thread.FCreateSuspendedMutex);
{$ELSEIF