在线程之间共享对象

时间:2014-10-08 09:36:50

标签: java multithreading object sharing

在我的程序中,我喜欢创建一个对象,然后将其传递给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

中的文件

1 个答案:

答案 0 :(得分:0)

多线程的基础: 如果胎面有物体,它将锁定"该对象,将数据放入对象或将其取出将不会改变任何内容,除非将对象写回内存或磁盘。

在你的代码示例中,没有等待CS_UDP完成写入列表,因此当CD_TCP开始读取时列表仍然为空。

希望这有帮助!

相关问题