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(); } 是错的,该怎么改呢?
你这么做线程的构造函数原则上没有错,但是,如果你要把线程按照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:依次类推
是这样的,我有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个线程了吗? 可是这样的速度与不开线程的速度一样呀
2、可以使用线程同步synchronization,wait(),notifyall()
3、不放分,就没意思了
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();
}
是错的,该怎么改呢?
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:依次类推
"你的每个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个线程了吗?
可是这样的速度与不开线程的速度一样呀