我想写一个线程并发。2个线程交互进行对1个变量+1操作,就是线程1加1之后,线程2加1,然后线程1再加1.....
输出线程ID 和数字。结果例如:ThreadId1:0
ThreadId2:1
ThreadId1:2
ThreadId2:3
ThreadId1:4
ThreadId2:5
ThreadId1:6
ThreadId2:7
ThreadId1:8
ThreadId2:9
ThreadId1:10
ThreadId2:11
....

解决方案 »

  1.   

    有木有人啊!!!  高手进来LOOK - LOOK啊
      

  2.   

    waitforsingleobject...
    2个线程函数里面循环就行了
      

  3.   

    什么意思啊?? 你的意思是用wait notify来做????能不能具体点啊?? 例如写个代码。
    能不能用线程同步锁来做啊
      

  4.   

    很难???如果不用WAIT NOTIFY ,怎么才能实现啊????
      

  5.   

    class MyThread implements Runnable 
    {
    public static int i;
    public void run(){
    for(int j=0;j<100;j++)
    add();
    }
    public synchronized void add(){
    i++;
    System.out.println(Thread.currentThread.getName()+i);
    }
    public static void main(String[] args) 
    {
    Thread thread1=new Thread(new MyThread());
    Thread thread2=new Thread(new MyThread());
    thread1.start();
    thread2.start();
    }
    }
    是不是这个意思
      

  6.   

    不过我有个问题。这个你测试了吗???他其实有的时候并不是交互有可能会出现1个线程连续执行add方法!!!!
      

  7.   

    这个问题除了用WAIT 解决  还有什么办法啊!!!!
      

  8.   

    Thread.currentThread().yield(); add()下架yield()就可以了 加锁也不用了
      

  9.   

    add();
    Thread.currentThread().yield(); 
    }
    public void add(){
    i++;
    System.out.println(Thread.currentThread().getName()+i);
    }
    如果就两个线程的话yield就可以了