多线程设计的方式
第一种设计方式:继承Thread
步骤:
- 定义一个线程类,继承Thread
- 重写Thread类中的run方法,用于定义线程运行的内容
- 创建自定义的线程对象
- 调用Start方法,开启线程
public class demo多线程的的第一种设计方式 {
public static void main(String[] args) {
MyThread mt = new MyThread();
mt.start();
for(int i = 0;i < 100;i++) {
System.out.println(i + "... main");
}
}
}
class MyThread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 100; i++) {
System.out.println(i + "...thread");
}
}
}
第二种设计方式:实现
步骤
- 定义一个任务类,实现Runnable
- 重写Runnabl接口中的run方法,
public class demo多线程的第二种设计方式 {
public static void main(String[] args) {
MyTask mt = new MyTask();
Thread t = new Thread(mt);
t.start();
for(int i = 0;i < 100;i++) {
System.out.println(i + "...main");
}
}
}
class MyTask implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 0;i < 100;i++) {
System.out.println(i + "...MyTask");
}
}
}
匿名内部类创建线程he用用实现的方式创建线程类对象
public class demo多线程的内部匿名类实现 {
public static void main(String[] args) {
//用继承的方式创建线程对象
Thread t =new Thread() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 0;i < 100;i++) {
System.out.println(i + "...extends");
}
}
};
t.start();
//用实现的方式创建线程对象
Thread th = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 0;i < 100;i++) {
System.out.println(i + "---implements");
}
}
});
th.start();
}
}
Thread的方法
-
String getName()
- 返回该线程的名称。 - ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200916154951887.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ZfeF9pX2Ffb19sX2lfbl9nXw==,size_16,color_FFFFFF,t_70#pic_center)
-
设置线程名字:
- void setName(String name)
改变线程名称,使之与参数 name 相同。
- void setName(String name)
-
获取当前线程对象:
线程休眠
守护线程
现成的优先级
同步代码块
同步方法