package com.itheima;
public class ThreadCreate {
/**
* @param args
* 采用继承Thread类方式:
(1)优点:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用this,即可获得当前线程。
(2)缺点:因为线程类已经继承了Thread类,所以不能再继承其他的父类。
采用实现Runnable接口方式:
(1)优点:线程类只是实现了Runable接口,还可以继承其他的类。在这种方式下,可以多个线程共享同一个目标(target)对象,
所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。
(2)缺点:编程稍微复杂,如果需要访问当前线程,必须使用Thread.currentThread()方法。
*/
public static void main(String[] args) {
// 通过Thread类创建线程
ThreadClass td = new ThreadClass("Thread");
ThreadClass td1 = new ThreadClass("Thread1");
td.start();
td1.start();
RunnableClass rc = new RunnableClass("Runnable");
Thread td3 = new Thread(rc);
Thread td4 = new Thread(rc);
td3.start();
td4.start();
}
}
class RunnableClass implements Runnable{
private String name;
public RunnableClass(String name){
this.name = name;
}
public void run(){
System.out.println(this.name);
}
}
class ThreadClass extends Thread{
private String name;
public ThreadClass(String name){
super(name);
this.name = name;
}
public void run(){
System.out.println(this.name);
}
}
请问实现多线程有几种方式?他们的区别是什么?
最新推荐文章于 2024-07-08 10:13:27 发布