java编程思想---22章索引

21.2.1 定义任务

new Runnable(){

         @Override

         public void run(){}

}

21.2.2 Thread

将Runnable对象转变为工作任务的传统方式是把它提交给一个 Thread 构造器。

new Thread(new Runnable(){}).start();

21.2.3 使用Executor

ExecutorService exec = Executors.newCachedThreadPool();

exec.execute(new  Runnable的实现类)

注意

exec.shutdown();

第一次遇到线程池的概念:

ExecutorService exec = Executors.newFixedThreadPool(5);

21.2.4 从任务中产生返回值

实现Callable 接口。重写的方法是 call() . 使用的泛型,返回值类型是泛型指定的类型。

21.2.5 休眠

使用的是TimeUnit.MILLISECONDS.sleep()

对sleep的调用可以抛出InterruptException 异常。因为异常不能跨线程传播回main(),所以必须在本地处理所有在任务内部产生的异常。

这里没有讲 Thread.sleep() ??

21.2.7 让步

Thread.yield() 不能依赖yield() , 这是系统控制的,不是绝对的让步。

21.2.8 后台线程

Thread  dm = new Thread(new Runnable实现类);

dm.setDaemon(true);

dm.start();

必须在线程启动前调用setDaemon()方法,才能把它设置为后台线程。

猜你喜欢

转载自blog.csdn.net/yush34/article/details/89504082