Java之Thread学习(二)

线程组:

          线程组表示一个线程的集合。此外,线程组也可以包含其他线程组 

线程池(某个线程执行完毕,反复利用线程对象)

所有的线程它默认的线程组名称:main(主线程)


常用方法:

        public ThreadGroup(String name)构造一个新线程组

        public Thread(ThreadGroup group, Runnable target, String name) 构造新的线程

        public final ThreadGroup getThreadGroup()返回该线程所属的线程组

        public final String getName():返回线程组的名称


线程池:多个线程执行完毕,它会重新回到线程池中,等待被利用,不会变成垃圾!

 和线程池有关的类

            Executors: 一种工厂类

                        方法:
              和线程池的创建有关系
                  public static ExecutorService newFixedThreadPool(int nThreads)         创建一个可重用固定线程数的线程池
                       ExecutorService:可以执行异步任务
                    创建一个线程池,执行接口中的方法
              提交:Future<?> submit(Runnable task)
      <T> Future<T> submit(Callable<T> task)提交一个返回值的任务用于执行,返回一个表示任务的未决结果的 Future
                       Future:接口
                  Future 表示异步计算的结果
                  线程池调用完毕可以关闭的

  void shutdown():关闭之前,会提交刚才的任务


public class ExecutorsTest {  
public static void main(String[] args) throws InterruptedException, ExecutionException {  
    ExecutorService pool=Executors.newFixedThreadPool(2);  
    Future<Integer> f1=pool.submit( new MyCallable(100));  
    Future<Integer> f2 = pool.submit(new MyCallable(100));  
    Integer i1 = f1.get();  
    Integer i2 = f2.get();  
    System.out.println(i1);  
    System.out.println(i2);  
    pool.shutdown();  
}  
}  

猜你喜欢

转载自blog.csdn.net/little_prince23/article/details/80732299