在我的程序中,我喜欢创建一个对象,然后将其传递给2个不同的线程,1应该更新对象的值,而另一个线程应该使用该值。但是当线程尝试使用值时,我得到的对象没有任何值的错误。我该如何解决这个问题?
SS_list list = new SS_list();
Files_list lof = new Files_list();
CS_UDP udp = new CS_UDP(cs_port, list, lof);
CD_TCP tcp = new CS_TCP(cs_port, list, lof);
SS_list存储可用的存储服务器列表;
Files_list存储存储服务器中可用的文件列表;
CS_UDP在udp中进行通信,并向用户返回可用文件列表和IP到存储服务器;
CD_TCP在tcp中进行通信并实现Files_list
中的文件答案 0 :(得分:0)
多线程的基础: 如果胎面有物体,它将锁定"该对象,将数据放入对象或将其取出将不会改变任何内容,除非将对象写回内存或磁盘。
在你的代码示例中,没有等待CS_UDP完成写入列表,因此当CD_TCP开始读取时列表仍然为空。
希望这有帮助!