java多线程—-常用方法

1.getName()

返回该线程的名字,如果没有设置名字,会返回默认名字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package Thread;

public class ThreadMethod implements Runnable{

public void run() {
// TODO Auto-generated method stub
for(int i=0;i<3;i++){
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
public static void main(String[] args) {
Thread t1=new Thread(new ThreadMethod());
t1.setName("thread1");
Thread t2=new Thread(new ThreadMethod());
t2.setName("thread2");
t1.start();
t2.start();
}

}

image-20191218170049421

2.sleep():线程休眠

线程休眠:线程暂缓执行,等到预计时间再执行。
线程休眠会交出CPU,让CPU去执行其他的任务。但是有一点要非常注意,sleep 方法不会释放锁,也就是说如果当前线程持有对某个对象的锁,则即使调用sleep方法,其他线程也无法访问这个对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package Thread;

public class ThreadMethod implements Runnable{

public void run() {
// TODO Auto-generated method stub
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+":"+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
Thread t1=new Thread(new ThreadMethod());
t1.setName("thread1");
t1.start();


}

}

运行结果就是一秒输出一段文字

image-20191218170522157

3.isAlive():测试线程是否在活动状态

image-20191218170645039

4.yield():暂停当前的线程,执行其他的线程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package Thread;

public class ThreadMethod implements Runnable{

public void run() {
// TODO Auto-generated method stub
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+":"+i);
if(i==5){
Thread.yield();
}

}
}
public static void main(String[] args) {
Thread t1=new Thread(new ThreadMethod(),"thread1");
Thread t2=new Thread(new ThreadMethod(),"thread2");

t1.start();
t2.start();
System.out.println("线程是否在活动:"+t1.isAlive());


}

}
image-20191218170952107

5.setPriority():设置线程的优先级

线程执行顺序也是按照设定的优先级执行的。

image-20191218171218238

-------------本文结束感谢您的阅读-------------
0%