本帖最后由 冉世友 于 2013-1-5 21:18 编辑
- 这样能达到操作共享数据的效果吗?
- /*
- * 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1
- *将Runnable对象定义为内部类,把共享数据
- * 和操作操作共享数据的方法封装到另一个对象中。
- */
- public class MutiThreadShareData2 {
- public static void main(String[] args) {
- final ShareData1 shareData1 = new ShareData1();
- for(int i=0; i<2; i++){
- new Thread(new Runnable(){
- @Override
- public void run() {
- shareData1.increase();
- }
- }).start();
-
- new Thread(new Runnable(){
- @Override
- public void run() {
- shareData1.decrease();
- }
- }).start();
- }
-
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
-
- e.printStackTrace();
- }
- System.out.println(shareData1.getJ());
- }
- }
- class ShareData1 {
- private int j = 100 ;
-
- public synchronized void increase(){
- j++;
- }
-
- public synchronized void decrease(){
- j--;
- }
-
- public int getJ(){
- return j;
- }
- }
复制代码 |