情况是这样的
第一个demo我定义了一个多线程全局Integer变量,然后多个读线程,一个写线程同时访问,竟然数据不会有问题,杯具(读写线程有sleep,不然后卡死)。第二个demo定义了一个多线程全局数组,然后多个读线程,一个写线程同时访问,竟然数据也不会有问题,杯具(读写线程有sleep,不然后卡死)。但是此时如果我把写线程的sleep去掉 完了 就挂掉了。。这两个现象应该如何分析?

解决方案 »

  1.   

    没问题并不等于你做的对,sleep会产生影响,你的操作也会有影响,或许你比较幸运
      

  2.   

    还是应该同步,sleep并不是好的延时方法。
      

  3.   


    定义成:  ThreadVar  试下e.g
      var 
         iValue : Integer->
      ThreadVar
         iValue : Integer;
      

  4.   

    就是同步问题嘛
    http://www.cnblogs.com/del/category/174761.html
      

  5.   

    1. 问题不在于线程, 一个写线程,再多的读线程也不会有问题,因为读是不影响的, 你如果多个写线程,会出问题的。2. 至于去掉Sleep会死, 那是因为全部占用CPU, 不给别的线程分配CPU了,当然挂掉了。