13 个解决方案
#1
多线程操作时要自己加锁啊,否则会出问题的
#2
一定要加锁吗,临界区神马的。我想着下次数据还没到来,开启的线程就处理完了啊
#3
stl对象都是线程不安全的
#4
如果vector已有元素较多,此时又超过了其size需要重分配内存,并拷贝之前的内容可能要的时间略长,你可以先看下如果加了锁之后是否正常
#5
这个多线程,你需要加锁,不是自己算时间,想当然,就不会出问题的
#6
《Windows核心编程》
#7
结果都表明了一切。
你需要加锁处理.
你需要加锁处理.
#8
多个线程操作同一个对象吗?
#9
多个线程操作同一个对象吗?
#10
结果都表明了一切。
你需要加锁处理.
#11
那怎么加合适呢?我这是对话框应用程序,定义的vector在dlg类中,要给他加锁,具体怎么做呢?谢谢
结果都表明了一切。
你需要加锁处理.
可以使用临界区,在使用vector的成员函数时加一下锁
#12
那怎么加合适呢?我这是对话框应用程序,定义的vector在dlg类中,要给他加锁,具体怎么做呢?谢谢
结果都表明了一切。
你需要加锁处理.
可以使用临界区,在使用vector的成员函数时加一下锁
#13
多线程用stl一定要加锁
#1
多线程操作时要自己加锁啊,否则会出问题的
#2
定义了一个vector对象来存放数据,不知道什么原因必须要在类的构造函数中先reserve()才能用,每40ms一次数据,来一次数据就开启线程解算然后放到vector对象中(解算时间在20ms内),结果最后输出时总是多出来很多数据,请问有什么可能的原因?多线程的问题还是vector没用对?
#3
stl对象都是线程不安全的
#4
一定要加锁吗,临界区神马的。我想着下次数据还没到来,开启的线程就处理完了啊
定义了一个vector对象来存放数据,不知道什么原因必须要在类的构造函数中先reserve()才能用,每40ms一次数据,来一次数据就开启线程解算然后放到vector对象中(解算时间在20ms内),结果最后输出时总是多出来很多数据,请问有什么可能的原因?多线程的问题还是vector没用对?
如果vector已有元素较多,此时又超过了其size需要重分配内存,并拷贝之前的内容可能要的时间略长,你可以先看下如果加了锁之后是否正常
#5
这个多线程,你需要加锁,不是自己算时间,想当然,就不会出问题的
#6
《Windows核心编程》
#7
结果都表明了一切。
你需要加锁处理.
你需要加锁处理.
#8
多个线程操作同一个对象吗?
#9
多个线程操作同一个对象吗?
#10
结果都表明了一切。
你需要加锁处理.
#11
那怎么加合适呢?我这是对话框应用程序,定义的vector在dlg类中,要给他加锁,具体怎么做呢?谢谢
结果都表明了一切。
你需要加锁处理.
可以使用临界区,在使用vector的成员函数时加一下锁
#12
那怎么加合适呢?我这是对话框应用程序,定义的vector在dlg类中,要给他加锁,具体怎么做呢?谢谢
结果都表明了一切。
你需要加锁处理.
可以使用临界区,在使用vector的成员函数时加一下锁
#13
多线程用stl一定要加锁