多线程联网程序的同步问题

IsItNothing 2010-04-23 11:46:20
请教大家个问题,我现在有个网络程序,通过网络下载图片,间隔一段时间就重新下载一张新图片,同时,在paint方法中绘制图片,我想问的是我是否需要同步下载线程和绘制函数对图片的访问?
如果我的线程创建了一个图片对像,如果paint中有对图片对象的引用,那我在某一时刻在线程中将对象=null,那么paint中对图片的引用是否还有效?是否会导致访问异常?谢谢!
...全文
123 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
睡觉谁叫~~~ 2010-04-28
  • 打赏
  • 举报
回复
建议用双缓冲
scomouse 2010-04-27
  • 打赏
  • 举报
回复
把上次paint的图片存成文件以后下载直接下载文件,这需要paint同步么?只是对文件访问的同步而已
IsItNothing 2010-04-27
  • 打赏
  • 举报
回复
恩。楼上说的是。但是和paint同步,绘制效率就低了啊。有没有别的办法?
whut_lcy 2010-04-25
  • 打赏
  • 举报
回复

每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
thr81111pp 2010-04-25
  • 打赏
  • 举报
回复
每天界分 帮顶!
Silence_Smile 2010-04-25
  • 打赏
  • 举报
回复
参考paint的双缓冲机制,网上下载图片时先写个缓冲文件,写完替换原文件,替换与paint同步下就行了!
IsItNothing 2010-04-24
  • 打赏
  • 举报
回复
如果我引用一个对象,比如我有3个引用,有2个是在线程中引用的。我把其中2个赋值为null那么这个对象还存在吗?
ublearning 2010-04-23
  • 打赏
  • 举报
回复
一般都是异步操作,在paint的时候判断图片是否为空
IsItNothing 2010-04-23
  • 打赏
  • 举报
回复
同步用哪种机制效率更高呢?
1.设置标志
2.wait,notify
3.syn...
hq1305018 2010-04-23
  • 打赏
  • 举报
回复
当然需要同步.
如果下载线程正在访问图片,PAINT线程有可能取不到数据.
如果PAINT线程正在访问图片,下载线程无法保存图片.

guangmingdeshenju 2010-04-23
  • 打赏
  • 举报
回复
就再定义一个图片的buffer吧,接收更新的图片,当此值不为空时,
才绘制新图,并将两个图片buffer功效互换
IsItNothing 2010-04-23
  • 打赏
  • 举报
回复
我不太了解java的机制,我是这样想的:
当我在paint的时候获得了对象的引用,但是这时候线程切换到了我的下载线程,我把图片对象赋值为null,这个时候,paint还没有调用完成,继续paint的时候,是不是就会产生异常?
junjia 2010-04-23
  • 打赏
  • 举报
回复
同步的时候会导致效率不高,如果能尽量不用就不要用了。就这个是不是可以先判断其是否为NULL呢?这样也可以避免了空指针异常啊

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧