问题遇到的现象和发生背景
online_ils是一个类名,我创建了两个此类的对象,分别将所需的参数传给启动函数,1个线程时程序能正常运行,2个线程的时候会报错,报错提示我需要改动的地方已经被改动过了,但是如果两个线程之间互相不影响,应该不会发生此问题。
问题相关代码,请勿粘贴截图
thread my_thread[2];
online_ils online[2];
for (int i = 0; i < 2; i++) {
my_thread[i] = thread{&online_ils::try_ils, &online[i], ref(mis_config[i]), ref(G[i]), i};
}
for (int i = 0; i < 2; i++) {
my_thread[i].join();
}
运行结果及报错内容
需要改动的地方已经被改动过了(程序未崩溃,触发这种情况报错提示并结束进程)