也就是说
int x=50;
for (x=0;x<=50;x++)
  {
    procss(object);
  }
建立多个线程,,这几个线程同时作用于同一变量,该怎么做?

解决方案 »

  1.   

    1、可以在线程莉使用静态变量static
    2、可以使用线程同步synchronization,wait(),notifyall()
    3、不放分,就没意思了
      

  2.   

    我放了分呀,你查查就知道了可以使用线程同步synchronization,wait(),notifyall()对于作用于x这个共同变量是怎么样进行的?
      

  3.   

    1)比如:process_thead的构造方法带参数(int x,Object object),是不是需要在这个定义的线程里定义一个x+1的同步方法?
    2)int x=50;
    for (x=0;x<=50;x=x+2)
      {
       process_thread thread1= new process_thread(x,object);
      thread1.start();
       process_thread thread2 = new process_thread(x+1,object);
       thread2.start();
      }
    是错的,该怎么改呢?
      

  4.   

    你这么做线程的构造函数原则上没有错,但是,如果你要把线程按照X的顺序执行就会有问题
    1:开50个线程作
    int x=50;
    for (x=0;x<50;x++)
      {
        //procss(object);
    process_thread thread1 = new process_thread(x,object);
      }
    //你的每个process_thread线程只需要处理一次关于x的操作
    2:开25个线程作
    int x=50;
    for (x=0;x<25;x++)
      {
        //procss(object);
    process_thread thread1 = new process_thread(x,object);
      }
    //你的每个process_thread线程需要处理关于2x和2x+1的操作
    3:依次类推
      

  5.   

    是这样的,我有x个页面要处理,每个处理的过程都是一样,但是页面的内容是不同的,所以我想是同一个线程,开多几个来运行 ,使速度加快,但是我想请问
    "你的每个process_thread线程只需要处理一次关于x的操作"这个处理一次关于x的操作是怎么定义的 呢?是在process_thread 内写一个这样的方法
    如:public synchronized  int x_add()
    {
    x++;
    return x;
    }
    这样可以吗?
    如果 是这样的话,
    for (x=0;x<50;x++)
      {
    process_thread thread1 = new process_thread(x,object);
    thread1.start();
      }
    就代表了有50个线程了吗?
    可是这样的速度与不开线程的速度一样呀