多线程的方法
Tread中常用的方法
- start():启动当前线程;调用当前线程的run()
- run():通常需要重写Thread类中的方法,将创建的线程要执行的操作声明在此方法中
- currentThread():静态方法,返回执行当前代码的线程
- getName():获取当前线程的名字
- setName():设置当前线程的名字
- yield():释放当前cpu的执行
- join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,知道线程b完全执行完以后,线程a才结束阻塞状态。
- stop():已过时。当执行此方法时,强制结束当前线程。
- sleep(long millitime):让当前线程“睡眠”指定的millitime毫秒。在指定的millitime毫秒时间内,当前线程是阻塞状态。
- isAlive():判断当前线程是否存活
package new1;
/*
* 多线程的创建,方式一:继承Thread类
* 1.创建一个继承于Thread类的子类
* 2.重写Thread类的run()--->将此线程执行的操作声明在run()中
* 3.创建Thread类的子类的对象
* 4.通过此对象调用start()
*
* 例子:遍历100以内的所有偶数
* */
//1.创建一个继承于Thread类的子类
class MyThread1 extends Thread {
//2.重写Thread类的run()
public void run() {
for (int i = 0; i < 20; i++) {
if (i % 2 == 0) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
}
class MyThread2 extends Thread {
//2.重写Thread类的run()
public void run() {
for (int i = 0; i < 20; i++) {
if (i % 2 != 0) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
}
public class demo1{
public static void main(String[] args) {
//3.创建Thread类的子类对象
MyThread1 t1 = new MyThread1();
MyThread2 t2 = new MyThread2();//在启动一个线程,需要重新创建一个线程对象
//4.通过此对象调用star();先启动当前线程,然后调用当前线程的run()
t1.start();
t2.start();
for (int i = 20; i < 40; i++){
if(i%2 != 0){
System.out.println("这是主线程:"+i);
}
}
}
}
结果
这是主线程:21
这是主线程:23
Thread-1:1
Thread-1:3
Thread-1:5
Thread-1:7
Thread-1:9
Thread-1:11
Thread-1:13
Thread-1:15
Thread-1:17
Thread-1:19
Thread-0:0
Thread-0:2
Thread-0:4
Thread-0:6
Thread-0:8
Thread-0:10
Thread-0:12
Thread-0:14
Thread-0:16
Thread-