java创建线程的三种方法及匿名类创建线程

java创建线程的三种方法及匿名类创建线程

import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

/*
 * 实现线程的3种方法,如果是两种的话就是继承和实现
 * 继承Thread
 * 实现Runnable
 * 实现Callable
 * 
 * 使用匿名类创建线程
 */
public class Threads {
	public static void main(String[] args) {
//		demo1();
//		demo2();
//		demo3();
//		demo4();
		
	}

	private static void demo4() {
		/*
		 * 使用匿名类 创建线程
		 */
		new Thread() {
			@Override
			public void run() {
				// TODO Auto-generated method stub
				for(int i = 0; i < 100; i++) {
					System.out.println("aaa");
				}
			}
		}.start();
		
		new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				for(int i = 0; i < 100; i++) {
					System.out.println("bbbbbbbbbbbbbbbb");
				}
			}
			
		}).start();
	}

	private static void demo3() {
		/*
		 * 实现Callable 实现线程
		 * 执行Callable方式,需要FutureTask实现类的支持,用于接收运算结果
		 */
		Mythreads3 mt3 = new Mythreads3();
        FutureTask<Integer> result = new FutureTask<>(mt3);
        new Thread(result).start();
        for(int i = 0; i < 100; i++) {
        	System.out.println("bbbbbbbbbbbbbbbbbbb");
        }
	}

	private static void demo2() {
		/*
		 * 实现Runnable 实现线程
		 */
		Mythreads2 mt2 = new Mythreads2();
		Thread t = new Thread(mt2);
		t.start();
		for(int i = 0; i < 100; i++) {
			System.out.println("bbbbbbbbbbbbbbbbbbbbbbbbbb");
		}
	}

	private static void demo1() {
		/*
		 * 继承线程
		 */
		Mythreads mt = new Mythreads();
		mt.start();
		for(int i = 0; i < 100; i++) {
			System.out.println("bbbbbbbbbbbbbbbbbbbbb");
		}
	}
}


class Mythreads extends Thread {
	@Override
	public void run() {
		// TODO Auto-generated method stub
		for(int i = 0; i < 100; i++) {
			System.out.println("aaaaaaa");
		}
	}
}

class Mythreads2 implements Runnable {
	@Override
	public void run() {
		// TODO Auto-generated method stub
		for(int i = 0; i < 100; i++) {
			System.out.println("aaa");
		}
	}
}

class Mythreads3 implements Callable {

	@Override
	public Object call() throws Exception {
		// TODO Auto-generated method stub
		for(int i = 0; i < 100; i++) {
			System.out.println("aaaaaaa");
		}
		return 1;
	}
	
}
发布了54 篇原创文章 · 获赞 0 · 访问量 345

猜你喜欢

转载自blog.csdn.net/qq_42977003/article/details/102978242