目录
(3) 实现Callable接口(这个方法允许子线程返回结果)
操作系统运行一个程序,即是一个进程从创建,运行到消亡的过程。但是某些程序内部还需要同时执行多个子任务。例如:我们在使用QQ发消息的时候也可以接收消息,我们把子任务称为线程,线程就是把进程划分为更小的运行单位了。
如图所示:
一个进程可以包含一个或多个线程,但至少会有一个主线程。
一、线程的基本概念
线程分为:1.单线程:即一个进程中只有一个线程
2.多线程:由一个以上的线程组成(虽然有多个线程,但一定是从主线程开始执行的)
二、线程的创建与启动
线程有四种创建方法分别为:
(1)方式一:继承Thread类(线程子类)
Thread h1=new Thread() {
@Override
public void run() {
}
}
例如:创建一个线程实现在一个字符串内添加A~R的功能
(2)方式二:实现Runnable接口
Thread h2=new Thread(new Runnable() {
@Override
public void run() {
}
}) ;
例如:创建一个线程实现在一个字符串中添加小写字母的功能:
(3) 实现Callable接口(这个方法允许子线程返回结果)
Thread h3=new Thread(new FutureTask<String>(
new Callable<String>() {
@Override
public String call() throws Exception {
return ***;
}
}
));
例如:创建一个在字符串中添加1~5的线程
(4)线程池
ExecutorService h4=Executors.newFixedThreadPool(4);
h4.execute(new Runnable() {
@Override
public void run() {
}
});
例如:创建一个 大小固定为4的线程池,并执行在字符串中添加特殊字符的任务
线程的启动是调用Thread实例的start()方法启动新线程