创建多线程程序的第一种方式
创建多线程程序的第二种方式
package Text2;
public class demo3Runnable {
public static void main(String[] args) {
//创建一个Runnable接口的实现类对象
RunnableImpl run=new RunnableImpl();
//创建Thread类对象,构造方法中传递Runnable接口的实现类对象
Thread t=new Thread(run);
//调用Thread的start方法。开启新的线程执run方法
t.setName("run");
t.start();
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
package Text2;
class RunnableImpl implements Runnable{
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+"-->"+i);
}
}
}
Thread和Runnable的区别
多线程原理随机打印结果
多线程内存图解
匿名内部类方式实现线程的创建
package Text2;
public class demo4InnerClassThread {
public static void main(String[] args) {
//线程的父类是Thread
new Thread(){
//重写run方法,设置线程任务
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+"-->"+"程序员");
}
}
}.start();//开启多线程
//使用线程接口Runnable
// Runnable r=new RunnableImpl()//多态
Runnable r=new Runnable(){
@Override
public void run() {
for (int i = 0; i < 20; i++) {
System.out.println(Thread.currentThread().getName()+"-->"+"呵呵");
}
}
};
new Thread(r).start();
//简化接口
new Thread(new Runnable() {
@Override
public void run() {
}
}).start();
}
}