重学JAVA基础(四):线程的创建与执行
1.继承Thread
public class TestThread extends Thread{ public void run(){ System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { Thread t = new TestThread(); t.start(); } }
2.实现Runnable
public class TestRunnable implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { Thread t = new Thread(new TestRunnable()); t.start(); } }
3.线程池
public class TestThreadPool { public static ExecutorService singlePool = Executors.newSingleThreadExecutor(); private static ExecutorService fixedPool = Executors.newFixedThreadPool(2); private static ExecutorService cachedPool = Executors.newCachedThreadPool(); private static ThreadPoolExecutor tpe = new ThreadPoolExecutor(5, 10, 5000, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new DefaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy()); private static class DefaultThreadFactory implements ThreadFactory{ @Override public Thread newThread(Runnable r) { Thread t = new Thread(r); return t; } } public static void main(String[] args) { singlePool.execute(new TestThreadP()); fixedPool.execute(new TestThreadP()); cachedPool.execute(new TestThreadP()); tpe.execute(new TestThreadP()); } } class TestThreadP implements Runnable{ @Override public void run() { System.out.println(Thread.currentThread().getName()); } }