java 大道至简--多线程(4)
内容目录:
Thread 类函数详解
正文:
Static int enumerate(Thread[] threads) -- 将线程组添加到复制到指定线程组中
例子:
package com.redis.chat;
public class Hello{
public static void main(String[] args) {
int count = Thread.activeCount();
Thread[] ts = new Thread[count];
System.out.println("复制前的线程数量====>"+ts.length);
int count_new = Thread.enumerate(ts);
System.out.println("复制后的线程数量====>"+count_new);
}
}
结果:
复制前的线程数量====>1
复制后的线程数量====>1
long setId(int priority)/getId() -- 获取线程唯一标识
String setName(String naeme/getName() -- 获取线程名称
String setPriority(int priority)/getPriority() -- 获取线程优先级
例子:
package com.redis.chat;
public class Hello{
public static void main(String[] args) {
Thread t = Thread.currentThread();
t.setName("admin main");
t.setPriority(Thread.MIN_PRIORITY);
System.out.println("Thread===>id==>"+t.getId()+"name===>"+t.getName() + "===>>priority ==>>"+t.getPriority());
}
}
结果:
Thread===>id==>1name===>admin main===>>priority ==>>1
static boolean holdsLock(Object obj) -- 当前线程能否获得指定的对象的锁
例子:
package com.redis.chat;
public class Hello{
static Object a = "a";
public static void main(String[] args) {
Thread t = Thread.currentThread();
boolean b = t.holdsLock(a);
System.out.println(b);
synchronized(a){
boolean c = t.holdsLock(a);
System.out.println(c);
}
}
}
结果:
false
true
static boolean interrupted() -- 判断线程是否中断
boolean isInterrupted() -- 判断线程是否中断
boolean isAlive() -- 获取线程名称
例子:
package com.redis.chat;
public class Hello{
static Object a = "a";
public static void main(String[] args) {
Thread t = Thread.currentThread();
boolean alive = t.isAlive();
System.out.println(alive);
boolean interrupted = t.interrupted();
if(!interrupted){
System.out.println(interrupted);
System.out.println("哈哈,我没有被终端");
}
}
}
结果:
true
false
哈哈,我没有被终端