线程的状态以及创建多线程的三种方式
作者: / 2019-10-07 / 浏览次数:

新建状态是指new之后,即新创建了一个线程的时候,此时并未运行任何线程方法体内的程序代码。

简单来说就是指程序调用了start之后,线程就得到了启动,代表线程进入了就绪状态,但是此时并不代表它会立刻去执行run方法体内的程序代码,而是随时等待cpu的调度。

获得cpu的时间后,调用run方法,进入运行状态。

由于某种原因放弃了cpu的会用权力,暂时停止运行,等待再次被调用。

线程正常执行完毕,或者是中途出现了异常退出了run。

现在来看创建多线程的三种方式:

最基本的实现多线程的方式,继承Thread类,重写run方法,通过start方法执行。

由于是继承的关系,所以这种方式也就有了他的局限性,只能有一个直接父类。

package cn.com.dh;
public class MyThread extends Thread{
@Override
public void run {
System.out.println;
for{
System.out.println;
}
System.out.println;
}
public static void main {
System.out.println;
new MyThread.start;
System.out.println;
}
}















Console控制台打印输出结果

2.实现runnable接口

因为继承的局限性,所以我们一般不会去用继承Thread类的方式去实现多线程,我们初级阶段用到的最多的是实现runnable接口,重写run方法,通过Thread调用start方法,进行线程的启动。

package cn.com.dh;
public class MyThreadR implements Runnable {
@Override
public void run {
for{
System.out.println.getName);
}
}
public static void main {
MyThreadR myThreadR1 = new MyThreadR;
MyThreadR myThreadR2 = new MyThreadR;
Thread thread1 = new Thread;
Thread thread2 = new Thread;
thread1.start;
thread2.start;
}
}
















Console控制台打印输出结果

3.实现callable接口

此种方式于与之前的两张方式最大的不同在于,实现callable接口可以有返回值和抛出异常

需要借助服务,线程池和future类

package cn.com.dh;
import java.util.concurrent.*;
public class MyThreadC implements Callable String {
private String threadName;
@Override
public String call throws Exception {
for{
threadName = "第 " + i +" 次执行,"+ Thread.currentThread.getName;
System.out.println;
}
return threadName;
}
public static void main throws ExecutionException, InterruptedException {
// 创建实现类对象
MyThreadC myThreadC1 = new MyThreadC;
MyThreadC myThreadC2= new MyThreadC;
// 创建执行服务
ExecutorService executorService = Executors.newFixedThreadPool;
// 提交执行
Future String future1 = executorService.submit;
Future String future2 = executorService.submit;
// 获取结果
String res1 = future1.get;
String res2 = future2.get;
// 关闭服务
executorService.shutdown;
}
}



























Console控制台打印输出结果

这就是创建多线程的三种方式。

【某某业务】网站建设、网站设计、服务器空间租售、网站维护、网站托管、网站优化、百度推广、自媒体营销、微信公众号
如有意向---联系我们
热门栏目
热门资讯

网站建设 网站托管 成功案例 新闻动态 关于我们 联系我们 服务器空间 加盟合作 网站优化

备案号: 

公司地址:江苏省南京市玄武区玄武湖 咨询QQ:9490489 手机: 电话: