Actor.java:
public class Actor extends Thread {
@Override
public void run() {
super.run();
System.out.println(getName()+"是一个演员!");
int count = 0;
System.out.println(getName()+"登台演出了"+ (++count) +"次!");
System.out.println(getName()+"演出结束!");
}
public static void main(String[] args) {
Thread actor = new Actor();
actor.setName("Gwoniu");
actor.start();
}
}

java线程中start和run方法的区别
Start:
用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。
Run:
run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。
总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。
在同一时间,同一处理器或同一个核只能运行一条线程,当一条线程休眠之后,另一条线程才获得了我们处理器的时间
2.Runnable接口之中没有getName方法,我们可以使用Thread的静态方法currentThreat().getName()获取该对象的名字。
3.若实现接口通过Thread.currentThread().getName()方法获取当前线程名称,继承Thread则getName()方法获取当前线程名称
继承Thread和实现Runnable其区别主要在于共享数据,Runnable接口是可以共享数据的,多个Thread可以同时加载一个Runnable,当各自Thread获得CPU时间片的时候开始运行Runnable,Runnable里面的资源被共享。
不管是继承Thread还是实现Runnable接口我们都可以创建线程。在实际开发中大多数情况下是实现Runnable接口的,因为它可以共享数据。
同一时间同一个cpu的同一个核只能运行一个线程。一个线程休眠以后,另一个线程才获得了处理器时间。
777777777777
6666666666
5555555555555555555
4444444444
3333333
222222222222222
11111111
public class
线程类extends Thread
public void run(){
getName()//获得线程名称
Thread.sleep(1000);
}
Thread actor=new Actor();
actor.setName("Mr.Thread");//设置线程名称
actor.start();
runnable接口implements runnable
@Override
public void run(){
本身没有getName方法
Thread.currentThread().getName()
}
Thread actressThread=new Thread(new Actress(),"msrunnable");
actressThread.start();
线程类的getname方法来获得线程的名称
setname 用来设置名称
class Actor extends Thread{ public void run(){ System.out.println(getName()+"是一个演员!");}}class Actress implements Runnable{public void run(){System.out.println("Thread.getCurrentThread().getName()+"是一个演员!");}}Thread actor = new Actor(); actor.setName("Mr.Thread");Thread actressThread = new Thread(new Actress(),"Ms.Runnable");setName()设置线程名称
A extends Thread {Thread.sleep} main{Thread a=new A;a.start}
B impl Runnable{} main{Thread b=new Thread(new B)}
java线程中start和run方法的区别
Start:
用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。
Run:
run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。
总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。
在同一时间,同一处理器或同一个核只能运行一条线程,当一条线程休眠之后,另一条线程才获得了我们处理器的时间
2.Runnable接口之中没有getName方法,我们可以使用Thread的静态方法currentThreat().getName()获取该对象的名字。
3.若实现接口通过Thread.currentThread().getName()方法获取当前线程名称,继承Thread则getName()方法获取当前线程名称
继承Thread和实现Runnable其区别主要在于共享数据,Runnable接口是可以共享数据的,多个Thread可以同时加载一个Runnable,当各自Thread获得CPU时间片的时候开始运行Runnable,Runnable里面的资源被共享。
不管是继承Thread还是实现Runnable接口我们都可以创建线程。在实际开发中大多数情况下是实现Runnable接口的,因为它可以共享数据。
继承Thread类,getName()获取当前线程名称。
实现Runnable接口,Thread.currentThread().getName();获取当前线程名称。
线程启动,Thread的对象.start()。线程休眠暂停:Thread.sleep(3000);表示休眠3秒。
java线程中start和run方法的区别
Start:
用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。
Run:
run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。
总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。
在同一时间,同一处理器或同一个核只能运行一条线程,当一条线程休眠之后,另一条线程才获得了我们处理器的时间
2.Runnable接口之中没有getName方法,我们可以使用Thread的静态方法currentThreat().getName()获取该对象的名字。
3.若实现接口通过Thread.currentThread().getName()方法获取当前线程名称,继承Thread则getName()方法获取当前线程名称
继承Thread和实现Runnable其区别主要在于共享数据,Runnable接口是可以共享数据的,多个Thread可以同时加载一个Runnable,当各自Thread获得CPU时间片的时候开始运行Runnable,Runnable里面的资源被共享。
不管是继承Thread还是实现Runnable接口我们都可以创建线程。在实际开发中大多数情况下是实现Runnable接口的,因为它可以共享数据。
没有提供源代码么
class Actor extends Thread{
public void run(){ System.out.println(getName()+"是一个演员!");}
}
class Actress implements Runnable{
public void run(){
System.out.println("Thread.getCurrentThread().getName()+"是一个演员!");}
}
Thread actor = new Actor(); actor.setName("Mr.Thread");
Thread actressThread = new Thread(new Actress(),"Ms.Runnable");
setName()设置线程名称
继承Thread和实现Runnable其区别主要在于共享数据,Runnable接口是可以共享数据的,多个Thread可以同时加载一个Runnable,当各自Thread获得CPU时间片的时候开始运行Runnable,Runnable里面的资源被共享。
不管是继承Thread还是实现Runnable接口我们都可以创建线程。在实际开发中大多数情况下是实现Runnable接口的,因为它可以共享数据。
.java文件只能有一个public类
类实现接口Runnable后 ,对象获得名称,用Thread.currentThread().getName();
父类Thread有一个run()方法 得到对象的名字的方法是:getName();
主要用Thread类和Runnable接口实现线程。
Thread类有getName方法,而Runnable接口没有这个方法。<br>应该用Thread.currentThread.getName()。
一个类中可以有N个外部类,但只能有一个public类
使用Runnable接口来创建线程
这里run方法中的变量count是不是应该为实例变量
实现runnable接口,完成线程创建
继承Thread,写run方法,完成线程启动