首页 > 其他 > 详细

java多线程的使用

时间:2014-03-10 16:23:00      阅读:344      评论:0      收藏:0      [点我收藏+]

方式1:

bubuko.com,布布扣
public class LiftOff implements Runnable {
    protected int countDown = 10;
    private static int taskCount = 0;
    private final int id = taskCount++;

    public LiftOff() {
        System.out.println("LiftOff Start:"+Thread.currentThread().getId());
    }

    public LiftOff(int countDown) {
        this.countDown = countDown;
    }

    public String status() {
        System.out.println("LiftOff tid:"+Thread.currentThread().getId());
        return "#" + id + "(" + (countDown > 0 ? countDown : "Liftoff!") + "),";
    }

    public void run() {
        
        while (countDown-- > 0) {
//            System.out.print();
            status();
            //Thread.yield();
        }
        System.out.println("LiftOff End:"+Thread.currentThread().getId());
    }

}
bubuko.com,布布扣
bubuko.com,布布扣
public class BasicThreads {
    
    public static void main(String[] args){
        System.out.println("main tid:"+Thread.currentThread().getId());
        Thread t=new Thread(new LiftOff());
        t.start();
        System.out.println("Waiting for LiftOff");
    }
}
bubuko.com,布布扣

 

方式2(首选):

 不限制数量的线程池

bubuko.com,布布扣
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class CachedThreadPool {

    public static void main(String[] args) {
        ExecutorService exec=Executors.newCachedThreadPool();
        for (int i = 0; i < 10; i++) {
            exec.execute(new LiftOff());
        }
        exec.shutdown();
    }
}
bubuko.com,布布扣

 

方式3:

限制数量的线程池

bubuko.com,布布扣
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class FixedThreadPool {
    public static void main(String[] args) {
        ExecutorService exec=Executors.newFixedThreadPool(5);
        for (int i = 0; i < 10; i++) {
            exec.execute(new LiftOff());
        }
        exec.shutdown();
    }
}
bubuko.com,布布扣

 

 方式4:

线程顺序执行

bubuko.com,布布扣
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class SingleThreadExecutor {
    public static void main(String[] args) {
        ExecutorService exec = Executors.newSingleThreadExecutor();
        for (int i = 0; i < 5; i++) {
            exec.execute(new LiftOff());
        }
        exec.shutdown();
    }
}
bubuko.com,布布扣

java多线程的使用,布布扣,bubuko.com

java多线程的使用

原文:http://www.cnblogs.com/zhuawang/p/3590259.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!