publicstaticvoidmain(String[] args){for(int i =0; i <100; i++){System.out.println("main线程---->"+ i);}//匿名内部类newThread(){@Overridepublicvoidrun(){for(int i =100; i <200; i++){System.out.println("创建线程----》"+ i);}}}.start();// 创建子类对象实现newMyThread().start();}}
// 获得当前线程对象Thread currentThread =Thread.currentThread();// 获得线程名字String name = currentThread.getName();System.out.println(name);// main
3.3 线程优先级
方法签名
方法描述
void setPriority(int newPriority)
更改线程的优先级
int getPriority()
返回线程的优先级
代码演示
Thread t1 =newThread("T1"){@Overridepublicvoidrun(){for(int i =1; i <101; i++){System.out.println(getName()+"执行-->"+i );}}};// 返回线程的优先级 int i = t1.getPriority();System.out.println(i);// 5 默认为5t1.setPriority(1);
注意
优先级只是相对来说的,优先级大的先执行的概率大,并不是优先级大就一定先执行
3.4 守护线程
方法签名
方法描述
boolean setDaemon(boolean n)
将该线程标记为守护线程或用户线程
注意:
需要在开启线程前,调用方法
设置成功后,该线程为守护线程,除外其他所以线程均为被守护线程
被守护线程停止,守护线程也将停止
代码演示
Runnable runnable =newRunnable(){@Overridepublicvoidrun(){for(int i =0; i <100; i++){System.out.println("小兵"+ i +"在战斗");}}};//创建对象Thread thread =newThread(runnable);//设置守护thread.setDaemon(true);//开启线程thread.start();Runnable runnable1=newRunnable(){@Overridepublicvoidrun(){System.out.println("大王战死");}};//创建对象,并开启线程newThread(runnable1).start();
结果:
3.5 线程休眠
方法签名
方法描述
static void sleep(long millis)
在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)
代码演示
Thread t2 =newThread("行人"){@Overridepublicvoidrun(){for(int i =1; i <1001; i++){System.out.println("行人"+ i +"执行...");}}};Thread t1 =newThread("汽车"){@Overridepublicvoidrun(){for(int i =1; i <1001; i++){if(i ==100){try{/*** 让当前线程休眠* 让出系统资源,别的线程执行* 等当前线程休眠结束,继续执行*/Thread.sleep(1);}catch(InterruptedException e){thrownewRuntimeException(e);}}System.out.println("汽车"+ i +"执行...");}}};
结果:
3.6 礼让线程
方法签名
方法描述
static void yield()
暂停当前正在执行的线程对象,并执行其他线程
3.7 插入(加入)线程
方法签名
方法描述
void join()
无限制时间加入,直到线程结束
void join(long millis)
等待该线程终止的时间最长为 millis 毫秒
代码演示
Thread t2 =newThread("行人"){@Overridepublicvoidrun(){for(int i =1; i <1001; i++){System.out.println("行人"+ i +"执行...");}}};Thread t1 =newThread("汽车"){@Overridepublicvoidrun(){for(int i =1; i <1001; i++){if(i ==100){try{//t2.join();// 让线程2加入,直到线程2执行完毕,线程1才会继续t2.join(1);// 让线程2加入,但是线程2只运行1毫秒,1毫秒后,线程1 2继续争抢}catch(InterruptedException e){thrownewRuntimeException(e);}}System.out.println("汽车"+ i +"执行...");}}};t1.start();t2.start();