首页 > 学院 > 开发设计 > 正文

Thread Api

2019-11-06 06:48:19
字体:
来源:转载
供稿:网友

static Thread currentThread()线程提供了一个静态方法,用来获取运行该方法的线程 例1:

package day04;/** * static Thread currentThread()线程提供了一个静态方法,用来获取运行该方法的线程 * @author Administrator*/public class ThreadAPIDemo1 { /** * main方法也是靠一个线程运行的。当我们执行java程序时,系统会启动一个进程来运行我们的程序。当进程启动后jvm也会创建线程来运行我们的main方法。 * @param args */ public static void main(String[] args) { /* * 返回运行当前方法的线程。这里的t就是运行main方法的线程了。 */ Thread t = Thread.currentThread(); System.out.PRintln("运行main方法的线程是:"+t); dosome(); //创建一个线程 Thread myThread = new Thread(){ public void run(){ Thread t = Thread.currentThread(); System.out.println("运行run方法的线程是:"+t); dosome(); } }; System.out.println("自定义的线程是:"+myThread); myThread.start(); } public static void dosome(){ //用于获取运行dosome方法的线程 Thread t = Thread.currentThread(); System.out.println("运行dosome方法的线程是:"+t); }}

运行结果:

运行dosome方法的线程是:Thread[main,5,main]自定义的线程是:Thread[Thread-0,5,main]运行run方法的线程是:Thread[Thread-0,5,main]运行dosome方法的线程是:Thread[Thread-0,5,main]

例2:

package day04;/** * 获取线程相关信息的API*/public class ThreadAPIDemo2 { public static void main(String[] args) { Thread t = Thread.currentThread(); long id = t.getId();//获取线程id System.out.println("id:"+id); System.out.println("name:"+t.getName()); System.out.println("priority:"+t.getPriority());//priority 英[praɪˈɒrəti]n. 优先,优先权; System.out.println("isAlive:"+t.isAlive()); System.out.println("isDaemon:"+t.isDaemon()); System.out.println("isInterrupted:"+t.isInterrupted()); }}

运行结果:

id:1name:mainpriority:5isAlive:trueisDaemon:falseisInterrupted:false

例3:

package day04;/** * 线程的优先级,线程优先级有10个等级 * 1最低,10最高,5是默认值;优先级越高的线程理论上被分配CPU时间片的次数就多。 */public class ThreadAPIDemo3 { public static void main(String[] args) { Thread min = new Thread(){ public void run(){ for(int i=0;i<10000;i++){System.out.println("min");} } }; Thread max = new Thread(){ public void run(){ for(int i=0;i<10000;i++){System.out.println("max");} } }; Thread norm = new Thread(){ public void run(){ for(int i=0;i<10000;i++){System.out.println("norm");} } }; min.setPriority(Thread.MIN_PRIORITY); max.setPriority(Thread.MAX_PRIORITY); min.start(); norm.start(); max.start(); }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表