C#多线程同用一个全局变量,如何保持每个线程的变量不会被别的线程
发布网友
发布时间:2022-04-25 01:56
我来回答
共1个回答
热心网友
时间:2023-10-20 07:21
是否用线程,要看你是否需要!如果你有需要并发处理的任务,可以开线程,如果像你说的这样,没有数据同步的需要,根据我做的测试的结果,反而会降低速度。
先单独运行,然后运行test
(下面代码的测试结果部分取决于机器本身)
下面附上我的测试代码:
ThreadA
public class ThreadA implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
long startTime = System.currentTimeMillis();
long number = 0L;
for(int index = 0; index < Integer.MAX_VALUE; index++){
number += index;
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
}
public static void main(String[] args) {
ThreadA a = new ThreadA();
a.run();
}
}
ThreadB
public class ThreadB implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
long startTime = System.currentTimeMillis();
long number = 0L;
for(int index = 0; index < Integer.MAX_VALUE; index++){
number += index;
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
}
public static void main(String[] args) {
ThreadB b = new ThreadB();
b.run();
}
}
Test
public class Test {
public static void main(String[] args) {
Thread a = new Thread(new ThreadA());
Thread b = new Thread(new ThreadB());
a.start();
b.start();
}
}