两个线程,一个对一个变量加100次 一个对一个变量减50次

实现方式1

package com.javabase;

public class Test3 {
	static int a=1;
	public static void main(String[] args) {
		Thread t1=new Thread(new Runnable(){

			@Override
			public void run() {
				// TODO Auto-generated method stub
				for(int i=0;i<100;i++){
					a++;
					System.out.println(Thread.currentThread().getName()+"--"+a);
				}
			}
			
		});
		
		
		
		Thread t2=new Thread(new Runnable(){

			@Override
			public void run() {
				// TODO Auto-generated method stub
				for(int i=0;i<50;i++){
					a--;
					System.out.println(Thread.currentThread().getName()+"--"+a);
				}
			}
			
		});
		t1.start();
		t2.start();
	}
}

实现方式2 需要四个类

User

package com.javabase;

public class User {
   public int age;
   
}

TestThread1

package com.javabase;

public class TestThread1 implements Runnable {
	User a;
	public TestThread1(User b){
		this.a=b;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		
		for(int i=0;i<100;i++){
			this.a.age++;
			System.out.println(Thread.currentThread().getName()+"--"+this.a.age);
		}
	}

}

TestThread2

package com.javabase;

public class TestThread2 implements Runnable {
	User a;
	public TestThread2(User b){
		this.a=b;
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		
		for(int i=0;i<50;i++){
			this.a.age--;
			System.out.println(Thread.currentThread().getName()+"--"+this.a.age);
		}
	}

}

测试 Test1

package com.javabase;

public class Test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		User u=new User();
		u.age=1;
		TestThread1 t1=new TestThread1(u);
		TestThread2 t2=new TestThread2(u);
		Thread tt1=new Thread(t1);
		tt1.setName("t1");
		Thread tt2=new Thread(t2);
		tt2.setName("t2");
		tt1.start();
		tt2.start();
	}

}

猜你喜欢

转载自blog.csdn.net/h356363/article/details/90580198
今日推荐