对于线程来讲,所有的操作方法都是在Thread类中定义,想要明确理解线程的操作方法,应该从Thread类的方法着手。
1、设置和取得名字
设置名字:
public final void setName(String name) {
checkAccess();
this.name = name.toCharArray();
}
构造:
public Thread(Runnable target, String name) {
init(null, target, name, 0);
}
public Thread(String name) {
}
取得名字:
public final String getName() {
return String.valueOf(name);
}
获取当前线程:
public static native Thread currentThread();
在程序运行时主方法实际上是一个主线程,已知强调java是多线程的操作语言,每一次执行java命令对于操作系统来讲都将启动一个JVM的进程,那么主方法实际上只是这个进程上的进一步划分。在java执行中,一个java程序至少启动了main和gc线程。
2、程序的休眠
让程序小小的休息一下,之后起来继续工作,称之为休眠
public static native void sleep(long millis) throws InterruptedException;
此方法需要进行异常处理。
3、程序的中断
在sleep()方法中存在InterruptException,那么会造成此异常的方法就是中断:
public void interrupt() {
if (this != Thread.currentThread())
checkAccess();
synchronized (blockerLock) {
Interruptible b = blocker;
if (b != null) {
interrupt0(); // Just to set the interrupt flag
b.interrupt(this);
return;
}
}
interrupt0();
}
4、线程的优先级
在多线程的操作中,代码都是存在优先级的,优先级高的可能先执行,设置优先级的代码如下:
public final void setPriority(int newPriority) {
ThreadGroup g;
checkAccess();
if (newPriority > MAX_PRIORITY || newPriority < MIN_PRIORITY) {
throw new IllegalArgumentException();
}
if((g = getThreadGroup()) != null) {
if (newPriority > g.getMaxPriority()) {
newPriority = g.getMaxPriority();
}
setPriority0(priority = newPriority);
}
}
对于优先级来说,在线程中有三种:
最高:MAX_PRIORITY
中等:NORM_PRIORITY
最低:MIN_PRIORITY