生命周期如图:
让步方法就是当本线程拿到CPU的执行权,执行让步方法是,让出本次CPU的执行权:
package thread;
/**
* @ClassName Test7
* @Author 瞿肖
* @Date 2022/7/11 14:32
*/
public class Test7 extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
Thread.yield();
System.out.println(getName() + "\t" + i);
}
}
public static void main(String[] args) {
Test7 t = new Test7();
Test7 t1 = new Test7();
t.start();
t1.start();
}
}
加了这个方法后,他们的输出有时候会是交替轮流输出一小会:
Thread-1 0
Thread-0 0
Thread-1 1
Thread-0 1
Thread-1 2
Thread-0 2
Thread-1 3
Thread-0 3
Thread-1 4
Thread-0 4
Thread-1 5
Thread-0 5
Thread-1 6
Thread-0 6
Thread-1 7
Thread-1 8
Thread-0 7
Thread-1 9
Thread-0 8
Thread-1 10
Thread-0 9
Thread-1 11
Thread-0 10
Thread-1 12
Thread-0 11
Thread-1 13
Thread-0 12
Thread-1 14
Thread-1 15
Thread-0 13
Thread-1 16
Thread-0 14
Thread-1 17
Thread-0 15
Thread-1 18
Thread-0 16
Thread-1 19
Thread-0 17
Thread-1 20
Thread-0 18
Thread-1 21
Thread-0 19
Thread-1 22
Thread-0 20
Thread-1 23
Thread-0 21
Thread-1 24
Thread-0 22
Thread-1 25
Thread-0 23
Thread-1 26
Thread-0 24
Thread-1 27
Thread-1 28
Thread-1 29
Thread-1 30
Thread-1 31
Thread-1 32
Thread-1 33
Thread-1 34
Thread-0 25
Thread-1 35
Thread-1 36
Thread-1 37
Thread-1 38
Thread-1 39
Thread-1 40
Thread-1 41
Thread-1 42
Thread-1 43
Thread-1 44
Thread-1 45
Thread-0 26
Thread-1 46
Thread-0 27
Thread-1 47
Thread-0 28
Thread-1 48
Thread-0 29
Thread-1 49
Thread-0 30
Thread-1 50
Thread-0 31
Thread-1 51
Thread-0 32
Thread-1 52
Thread-1 53
Thread-1 54
Thread-1 55
Thread-1 56
Thread-1 57
Thread-1 58
Thread-1 59
Thread-1 60
Thread-1 61
Thread-1 62
Thread-1 63
Thread-1 64
Thread-1 65
Thread-1 66
Thread-1 67
Thread-1 68
Thread-1 69
Thread-0 33
Thread-1 70
Thread-0 34
Thread-1 71
Thread-0 35
Thread-1 72
Thread-0 36
Thread-1 73
Thread-0 37
Thread-1 74
Thread-1 75
Thread-1 76
Thread-1 77
Thread-1 78
Thread-0 38
Thread-1 79
Thread-0 39
Thread-1 80
Thread-1 81
Thread-1 82
Thread-1 83
Thread-0 40
Thread-1 84
Thread-0 41
Thread-1 85
Thread-1 86
Thread-0 42
Thread-1 87
Thread-0 43
Thread-1 88
Thread-0 44
Thread-1 89
Thread-0 45
Thread-1 90
Thread-0 46
Thread-1 91
Thread-0 47
Thread-1 92
Thread-0 48
Thread-1 93
Thread-0 49
Thread-1 94
Thread-0 50
Thread-1 95
Thread-0 51
Thread-1 96
Thread-0 52
Thread-1 97
Thread-0 53
Thread-1 98
Thread-0 54
Thread-1 99
Thread-0 55
Thread-0 56
Thread-0 57
Thread-0 58
Thread-0 59
Thread-0 60
Thread-0 61
Thread-0 62
Thread-0 63
Thread-0 64
Thread-0 65
Thread-0 66
Thread-0 67
Thread-0 68
Thread-0 69
Thread-0 70
Thread-0 71
Thread-0 72
Thread-0 73
Thread-0 74
Thread-0 75
Thread-0 76
Thread-0 77
Thread-0 78
Thread-0 79
Thread-0 80
Thread-0 81
Thread-0 82
Thread-0 83
Thread-0 84
Thread-0 85
Thread-0 86
Thread-0 87
Thread-0 88
Thread-0 89
Thread-0 90
Thread-0 91
Thread-0 92
Thread-0 93
Thread-0 94
Thread-0 95
Thread-0 96
Thread-0 97
Thread-0 98
Thread-0 99
进程已结束,退出代码0
还有就是设置线程的优先级:
优先级越高,获取到CPU的执行时间就越长、机会越大:
package thread;
/**
* @ClassName Test7
* @Author 瞿肖
* @Date 2022/7/11 14:32
*/
public class Test7 extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(getName() + "\t" + i);
}
}
public static void main(String[] args) {
Test7 t = new Test7();
Test7 t1 = new Test7();
t.setPriority(1);
t1.setPriority(10);
t.start();
t1.start();
}
}
只有三个等级:
1-5-10,默认等级是5