目录
多线程构造方法
-
public Thread() :分配一个新的线程对象。
-
public Thread(String name) :分配一个指定名字的新线程对象。
-
public Thread(Runnable target) :分配一个带有指定目标新的线程对象。
-
public Thread(Runnable target,String name) :分配一个带有指定目标新的线程对象并指定名字。
常用方法
-
public void run() :此线程要执行的任务在此处定义代码。
-
public void start() :导致此线程开始执行; Java虚拟机调用此线程的run方法。
-
public String getName() :获取当前线程名称。
-
public static Thread currentThread() :返回当前正在执行的线程对象的引用。
-
public final boolean isAlive():测试线程是否处于活动状态。如果线程已经启动且尚未终止,则为活动状态。(true活动,false为未活动)
-
public final int getPriority() :返回线程优先级
-
public final void setPriority(int newPriority) :改变线程的优先级
-
每个线程都有一定的优先级,优先级高的线程将获得较多的执行机会。每个线程默认的优先级都与创建它的父线程具有相同的优先级。Thread类提供了setPriority(int newPriority)和getPriority()方法类设置和获取线程的优先级,其中setPriority方法需要一个整数,并且范围在[1,10]之间,通常推荐设置Thread类的三个优先级常量:
-
MAX_PRIORITY(10):最高优先级
-
MIN _PRIORITY (1):最低优先级
-
NORM_PRIORITY (5):普通优先级,默认情况下main线程具有普通优先级。
-
-
public static void sleep(long millis) : 使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行)。
-
public static void yield(): yield只是让当前线程暂停一下,让系统的线程调度器重新调度一次, 希望优先级与当前线程相同或更高的其他线程能够获得执行机会,但是这个不能保证, 完全有可能的情况是,当某个线程调用了yield方法暂停之后,线程调度器又将其调度出来重新执行。
-
void join() :等待该线程终止。 void join(long millis) :等待该线程终止的时间最长为 millis 毫秒。如果millis时间到,将不再等待。 void join(long millis, int nanos) :等待该线程终止的时间最长为 millis 毫秒 + nanos 纳秒。
守护线程
java
/*
守护线程
*/
public class DeamonTest {
public static void main(String[] args) {
/*
GC就是守护线程
*/
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
System.out.println("守护线程在运行");
}
}
});
t1.setDaemon(true);//将t1线程变成守护线程(在程序中只要没有其它线程还在运行 守护线程就会死亡)
t1.start();
for (int i = 0; i < 50; i++) {
System.out.println(Thread.currentThread().getName() + "====" + i);
}
}
}