synchronized实现多线程 java代码示例

多线程代码示例

//自定义类Multithreading    实现  Runnable
public class Multithreading implements Runnable{
	public int i=1;
	public Multithreading(int i) {
		this.i = i;
		System.out.println("入参i:"+i);
	}
	@Override
	public void run() {
		try {
		System.out.println("输出1");
		Thread.sleep(10000);
		//关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块
		synchronized (Multithreading.class) {
			System.out.println("输出2");
			Thread.sleep(10000);
			if(CheckFile(i)){
				System.out.println("i-奇数");
			}else{
				System.out.println("i-偶数");
			}
			++i;
			System.out.println("++i:"+i);
		}
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
	private boolean CheckFile(int i){
		boolean tag=false;
		if(i%2 == 1){//i-奇数
			tag = true;
		}else {//i-偶数
			tag = false;
		}
		System.out.println("tag:"+tag);
		return tag;
	}
}
``
//调用测试
public void test() {
	new Thread(new Multithreading(1)).start();
	new Thread(new Multithreading(2)).start();
	new Thread(new Multithreading(3)).start();
}
发布了10 篇原创文章 · 获赞 1 · 访问量 431

猜你喜欢

转载自blog.csdn.net/weixin_38919176/article/details/103177868