多线程编程中关于回调的雷区

    技术2022-05-11  15

          这段时间在Windows mobile上进行编程过程中进行了一些多线程的实践操作,由于在线程之间通讯比较多利用了的函数回调,出现了一些问题。

          

          1、认识误区

                以前总以为同一对象的方法应该在同一线程中,现在发现情况并不是这样。如果该对象实现了另外一个线程中的回调函数时,回调函数中调用的所有函数和正常调用该对象的函数是在不同的线程中。也就是说,函数是在那个线程中运行,和对象是没有关系的。

         

          2、在不同线程中new出来的同一类型的不同对象是在不同线程的。

      

          3、同一对象中所包含的指针有可能指向不同线程的内存,所以在内存管理时需要注意。

     

           4、在同一线程新建的对象应该在该线程中删除,不应该由另外一个线程删除。因为在删除不同线程的内存时,有可能被删除内存所在的线程已经被删除了,这时内存也相应的被删除了。

     

           5、在访问不同线程的内存时需要保证该内存没有被删除(包含访问内存所在的线程没有被删除)。


    最新回复(0)