首先创建执行加运算的线程
class Add implements Runnable{
private int sum = 0;
@Override
public void run() {
for(int i=0; i<10; i++){
sum += i;
}
System.out.println("相加的结果: " + this.sum);
}
}
然后创建执行减运算的线程
class Subtraction implements Runnable{
private int sum = 100;
@Override
public void run() {
for(int i=10; i>0; i--){
sum -= i;
}
System.out.println("相减后的结果: " + this.sum);
}
}
主函数
public class Question {
public static void main(String[] args) {
Add a = new Add();
Thread t1 = new Thread(a);
Thread t2 = new Thread(a);
t1.start();
t2.start();
Subtraction s = new Subtraction();
Thread t3 = new Thread(s);
Thread t4 = new Thread(s);
t3.start();
t4.start();
}
}
创建线程用的是实现Runnable接口,实现Runnable比起直接继承Thread类,好处如下:
- 适合多个相同程序代码的线程去处理统一资源的情况(资源可分享);
- 可以避免由于java单继承所带来的的局限;
- 增强了程序的健壮性,代码能够被多个线程共享,代码和数据是独立的。