原 跟着波波老师学多线程高并发(二)创建多线程的几种方式
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1115
(1)继承Thread类。继承Thread类重写run方法。
(2)实现Runnable接口。
(3)使用匿名内部类。
(4)callable。
(5)使用线程池。
一:继承Thread类代码如下:
package com.mszl.controller;
/**
* 更多资料请访问http://www.91mszl.com
* @author bobo teacher
*/
class createThread extends Thread{
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("son " + i);
}
super.run();
}
}
public class Demo1{
public static void main(String[] args) {
createThread d1=new createThread();
d1.start(); // 启动线程是用start(),而不是run()
for (int i = 0; i < 10; i++) {
System.out.println("father " + i);
}
}
}
执行结果:
备注:
1 启动线程是用start(),而不是run()。
2 开启多线程后,代码不会从上往下的执行。
二:实现Runnable 接口的代码如下:
package com.mszl.controller;
/**
* 更多资料请访问http://www.91mszl.com
* @author bobo teacher
*/
class createRunnable implements Runnable{
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("子线程" + i);
}
}
}
public class Demo2{
public static void main(String[] args) {
createRunnable c1=new createRunnable();
Thread t=new Thread(c1);
t.start();
for (int i = 0; i < 10; i++) {
System.out.println("父线程" + i);
}
}
}
执行结果:
三:使用匿名内部类代码如下:
package com.mszl.controller;
/**
* 功能:匿名内部类
* 更多资料请访问http://www.91mszl.com
* @author bobo teacher
*/
public class Demo1{
public static void main(String[] args) {
Thread d1=new Thread(new Runnable() {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("子线程" + i);
}
}
});
d1.start();
for (int i = 0; i < 10; i++) {
System.out.println("父线程" + i);
}
}
}
执行结果:
2019-11-19 09:43:04 阅读(855)
名师出品,必属精品 https://www.91mszl.com
博主信息