zoukankan      html  css  js  c++  java
  • 【Java】创建线程对象两种方式

    1.继承Thread类,重载run方法;
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            // TODO Auto-generated method stub
        }
    });
    2.实现Runnable接口,实现run方法;
    public class RunnableDemo implements Runnable {
    
    	protected int countDown = 10;
    	private static int taskCount = 0;
    	private final int id = taskCount++;
    
    	public RunnableDemo() {
    	}
    
    	public RunnableDemo(int countDown) {
    		this.countDown = countDown;
    	}
    
    	public String status() {
    		return "#" + id + "(" + (countDown > 0 ? countDown : "LiftOff!") + ").";
    	}
    
    	@Override
    	public void run() {
    		while (countDown-- > 0) {
    			System.out.print(status());
    			Thread.yield();// 将CPU从一个线程转移给另一个线程
    		}
    	}
    
    	public static void main(String[] args) {
    
    		System.out.println("这个任务的run()不是单独的线程驱动,是在main()中直接调用");
    		RunnableDemo launch = new RunnableDemo();
    		launch.run();
    		System.out.println();
    		System.out.println("************************************");
    
    		System.out.println("在新线程中启动任务");
    		Thread thread = new Thread(new RunnableDemo());
    		thread.start();
    		System.out.println("Waiting for LiftOff");
    		System.out.println("************************************");
    
    		System.out.println("添加多个线程去驱动更多的任务");
    		for (int i = 0; i < 5; i++) {
    			new Thread(new RunnableDemo()).start();
    		}
    		System.out.println("Waiting for LiftOff");
    
    		System.out.println("************************************");
    		System.out.println("使用executor");
    		ExecutorService exec = Executors.newCachedThreadPool();
    		exec=Executors.newFixedThreadPool(5);
    		for (int i = 0; i < 5; i++) {
    			exec.execute(new RunnableDemo());
    		}
    		exec.shutdown();
    		
    		Thread t=new Thread(new Runnable() {
    			
    			@Override
    			public void run() {
    				// TODO Auto-generated method stub
    				
    			}
    		});
    	}
    
    }
    

      

  • 相关阅读:
    CodeForces 660D Number of Parallelograms
    【POJ 1082】 Calendar Game
    【POJ 2352】 Stars
    【POJ 2481】 Cows
    【POJ 1733】 Parity Game
    【NOI 2002】 银河英雄传说
    【NOI 2015】 程序自动分析
    【POJ 1704】 Georgia and Bob
    【HDU 2176】 取(m堆)石子游戏
    【SDOI 2016】 排列计数
  • 原文地址:https://www.cnblogs.com/zeze/p/6564392.html
Copyright © 2011-2022 走看看