我的程序实现的是辅助线程进行串口的数据的收发,工作者线程负责界面上数据的显示,线程之间数据的传递采用全局变量进行,程序运行时多次出现对话框“程序错误”只能关闭。我个人认为可能是两个线程同时对一个全局变量操作造成的。请高手帮忙分析一下原因。

解决方案 »

  1.   

    但是一个是读,一个是写啊,不会是这个地方的原因吧
      

  2.   

    刚看了看书,原来这就是线程同步的问题啊。让各位见笑了,小弟明白了,看来只能通过一个标志位将对某一变量的同时操作错开了。
      小弟还想问问,假如两个线程只是同时读某一变量的话,会发生错误吗?
      

  3.   

    书上就是说,当一个线程正在读取共享缓冲区时,另一个线程又正在向该缓冲区写数据,,那么程序就可能出现错误。
      

  4.   

    书上就是说,当一个线程正在读取共享缓冲区时,另一个线程又正在向该缓冲区写数据,,那么程序就可能出现错误。
    ~~~~~~~~~~~~~~~~~~~~~~
    个人觉得错误只是由于不同步导致的读取数据是错误的或者是无效的,而一般来说,即使不同步,也不会出现你上面所描叙的程序错误的,所以应该是其他方面的问题