A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© darkads 中级黑马   /  2014-9-16 10:34  /  691 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多线程数据共享:
        1)多个线程执行代码相同,可以使用同一个Runable对象,该对象中保存了共享数据,例如:卖票系统。
        2)如果多个线程执行的代码不同,这时需要不同的Runable对象,两种方法:
                1.使用一个对象将共享数据封装起来,再将该对象传递给所有的Runable对象,每个线程对共享数据的操作也交由该对象去完成。这样针对该共享数据的所有操作都可以实现互斥。
                2.将所有的Runable对象作为一个类的内部类,而共享数据作为该类的成员变量,共享数据的操作方法也交由外部类来完成。内部类可以访问外部类的成员变量与方法,从而实现数据共享。
                3.以上两种方式的组合,共享数据和其操作方法由对象封装,而Runable对象作为其成员变量或方法中的局部变量。
        总之,要同步互斥几段不同的代码,最好将其放在不同的方法中,并使用一个类来封装他们,这样比较容易实现线程间的同步互斥与通信。

1 个回复

倒序浏览
学习了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马