8.20Java入门--->第二十四节(多线程)

dateInputStream、dateOutputStream

数据流,操作基本数据类型

File

创建文件 Create

检测文件是否存在

多线程

1、实现多线程的方式

继承Thread

实现 Runnable接口

实现 Callable接口

算了自己总结吧,8.20   14:45 一直做练习到17:20下课

实现实现 Callable接口

//创建服务
ExecutorService esr=new Executors.newFixedThreadPool(3);
//提交执行 Future
<String> s= esr.submit(myThread3);
//读取结果 String s1
=s.get();
//关闭服务 esr.shutdown();

对应的实现类,实现Callable接口,重写Call方法
Call方法有返回值

 实质只有Runable一种方式,Thread类实现了Runable接口

2、启动一个新线程

启动线程的唯一方 法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法,它将启动一个新线 程,并执行 run()方法。

start()方法才是新建一个线程。

3、线程池

Java 里面线程池的顶级接口是 Executor,但是严格意义上讲真正的线程池接口是 ExecutorService。

1、newCachedThreadPool

创建一个可根据需要创建新线程的线程池,调用 execute 将重用以前构造 的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并 从缓存中移除那些已有 60 秒钟未被使用的线程。

2、newFixedThreadPool

创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。

如果在所有线程处于活动状态时提交附加任务, 则在有可用线程之前,附加任务将在队列中等待。

3、newScheduledThreadPool

创建一个线程池,它可安排在给定延迟后运行命令或者定期地执行。

4、newSingleThreadExecutor

这个线程 池可以在线程死后(或发生异常时)重新启动一个线程来替代原来的线程继续执行下去!

原文地址:https://www.cnblogs.com/springxian/p/13538142.html