Java中Thread中的常用方法
Posted 巧克力爱王子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中Thread中的常用方法相关的知识,希望对你有一定的参考价值。
测试Thread中常用的方法:
1、start():启动当前线程;调用当前线程的run();
2、run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中;
3、currentThread():静态方法,返回执行当前代码的线程;
4、getname():获取当前线程的名字;
5、setname():设置当前线程的名字;
6、yield():释放当前cpu的执行权;
(此时需要注意cpu释放该线程后不一定会被其他线程占用,也可能又分给该线程)
7、join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,直到线程b完全执行完以后,线程a才结束阻塞状态。
8、stop():已过时,当执行此方法时,强制结束当前线程;(看看就行/偷笑)
9、sleep(long millitime):让当前线程“睡眠”指定的millitime(毫秒),在指定的millitime毫秒时间内,当前线程是阻塞的。
10、isAlive():判断当前线程是否存活。
//用实现Runnable接口的方法创建第一个线程
class MyTreadMthods implements Runnable{
// run():通常需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中;
@Override
public void run() {
for (int i = 0; i < 30; i++) {//输出0~7中7的倍数
if (i % 7 == 0){//getname():获取当前线程的名字;
// sleep(long millitime):让当前线程“睡眠”指定的millitime(毫秒)
// ,在指定的millitime毫秒时间内,当前线程是阻塞的。
try {
Thread.currentThread().sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ":" + i);
}
// if (i > 21){
// //释放当前cpu的执行权;
// Thread.currentThread().yield();
// }
}
}
}
//用实现Runnable接口的方法创建第二个线程
class MyTreadMthods1 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 30; i++) {//输出0~7中7的倍数
if (i % 7 == 0){//getname():获取当前线程的名字
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
}
public class ThreadMthods {
public static void main(String[] args) {
MyTreadMthods mthods = new MyTreadMthods();
MyTreadMthods1 mthods1 = new MyTreadMthods1();
Thread thread = new Thread(mthods);
Thread thread1 = new Thread(mthods1);
//setname():设置当前线程的名字;
thread1.setName("线程一");
//start():启动当前线程;调用当前线程的run();
thread.start();
// thread1.start();
for (int i = 0; i < 30; i++) {//输出0~7中7的倍数
if (i % 7 == 0){//getname():获取当前线程的名字;
System.out.println(Thread.currentThread().getName() + ":" + i);
}
// join():在线程a中调用线程b的join(),此时线程a就进入阻塞状态,
// 直到线程b完全执行完以后,线程a才结束阻塞状态。
if(i == 14){
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
// isAlive():判断当前线程是否存活。
System.out.println(thread.isAlive());
}
}
此为输出结果,运行时,当main线程到14时,Thread-0线程每隔一秒出现一个,join()方法运行后,main线程阻塞,直到Thread-0线程运行完成,所以最后判断Thread-0是否存活时是:false
main:0
main:7
main:14
Thread-0:0
Thread-0:7
Thread-0:14
Thread-0:21
Thread-0:28
main:21
main:28
false
Process finished with exit code 0
以上是关于Java中Thread中的常用方法的主要内容,如果未能解决你的问题,请参考以下文章