一个类中有一个变量的值是50 想创建4个线程4个线程同时对其进行操作 2个线程对其进行加加 2个线程对其进行减减 减减最小不能小于0 加加最大不能大于100 求详细解说或demo

解决方案 »

  1.   

    参考去吧
    4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。
    public class ThreadTest1{ private int j; public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); Dec dec=tt.new Dec(); for(int i=0;i<2;i++){ Thread t=new Thread(inc); t.start(); t=new Thread(dec); t.start(); } } private synchronized void inc(){ j++; System.out.println(Thread.currentThread().getName()+"-inc:"+j); } private synchronized void dec(){ j--; System.out.println(Thread.currentThread().getName()+"-dec:"+j); } class Inc implements Runnable{ public void run(){ for(int i=0;i<100;i++){ inc(); } } } class Dec implements Runnable{ public void run(){ for(int i=0;i<100;i++){ dec(); } } } } 
      

  2.   

    inc(); 
    dec(); 
    是汇编吗,也不是。
      

  3.   

    你要理解线程间怎么才会加锁排斥的,就是有一个共享的对象穿梭在线程间,就使得对对象的操作synchronized就起作用了;没共享对象的话,就是2个独立线程,独立的,