JAVA 两种多线程方法应用
JAVAde 多线程方法有两种实现 Runnable 接口 和 Thread 继承类
Runnable:先实现接口 重写run方法 后用Thread对象的start()方法启动
public class test03 implements Runnable{
//重写接口方法
@Override
public void run() {
for(int i = 0;i < 10000; i++) {
System.out.println(i);
}
}
}
//测试 放在另一个类中
void test3() {
test03 runnable01 = new test03();
Thread thread = new Thread(runnable01);
thread.start();
//主线程
for(int i = 0;i < 10000;i++) {
System.out.println(i);
}
}
Runnable:匿名内部类 : 直接写入方法
void test4() {
//子线程
Thread thread = new Thread(new Runnable() {
public void run() {
for(int i = 0;i < 100; i++) {
System.out.println("Runnable->"+i);
}
}
});
thread.start();
//主线程
for(int i = 0;i < 100; i++) {
System.out.println("mainThread->"+i);
}
}
Thread :先继承 后重写方法 在对象中调用start()直接启动
public class test01 extends Thread{
//重写run方法
public void run() {
super.run();//调用父类方法
for(int i = 0; i<100000;i++) {
System.out.println(i);
}
}
}
//测试 放在另一个类中
void test() {
test01 cs = new test01();//实例化
cs.start();//启动 run方法
for(int i = 0; i < 100000; i++) {
System.out.println(i);
}
}
Thread:匿名内部类
new Thread("线程名") {
public void run() { //重写run方法
super.run();//调用父类run方法
for(int i = 0; i < 100; i++) {
System.out.println(i);
}
}
};
设置/获取当前线程的名字:
获取:
Thread.currentThread().getName()
//例如:
System.out.println(Thread.currentThread().getName());
设置:
Thread.currentThread().setName()
//例如:
System.out.println(Thread.currentThread().setName());
线程休眠 sleep方法
Thread.sleep();
对象名称.sleep();
指定休眠时间:sleep(int) 毫秒