多线程——改变线程的名字(setPriority(int)方法、toString()方法以及wait方法和sleep方法的异同点)

来源:互联网 发布:2016淘宝会员名字大全 编辑:程序博客网 时间:2024/06/13 11:52
package com.qianfeng.demo01;/** * 改变线程的名字 * setPriority(int):设置优先级,优先级越高拿到cpu处理权的机率就越大,默认优先级是5,取值范围1-10 * toString()方法打印出来的是:名称,优先级,线程组 * 线程组:线程组就是把一组线程放到一个组里,如果想要调用10个线程,如果把他们放到一个组里,调用一组线程就可以了。 * Thread.yield();   //暂时的释放当前线程的执行权(释放完还能抢回来) *  * wait方法和sleep方法的异同点: * 相同点:两个方法都可以使线程处于阻塞(冻结)状态。 * 不同点: * 1.sleep方法必须指定时间,wait可以指定时间,也可以不指定时间。 * 2.sleep方法会释放执行权,但是在同步中不会释放锁。 *   wait方法释放了执行权,同时也会释放锁。 *  * synchronized(obj){ *    Thread.sleep();   //不会释放锁 * } *  * synchronized(obj){ *    obj.wait();   //会释放锁 * } *  * */class Test extends Thread{public Test(String name){super(name);}@Overridepublic void run() {for (int i = 0; i < 10; i++) {//System.out.println(Thread.currentThread().getName()+"..."+i);System.out.println(Thread.currentThread().toString());}}}public class ThreadNameDemo {public static void main(String[] args) {Test t1 = new Test("小明");Test t2 = new Test("旺财");t1.start();t2.start();//设置优先级,优先级越高拿到cpu处理权的机率就越大,默认优先级是5,取值范围1-10t1.setPriority(10);t2.setPriority(1);//toString()方法打印出来的是:名称,优先级,线程组System.out.println(Thread.currentThread().toString());//线程组:线程组就是把一组线程放到一个组里,如果想要调用10个线程,如果把他们放到一个组里,调用一组线程就可以了。Thread.yield();   //暂时的释放当前线程的执行权(释放完还能抢回来)}}

0 0
原创粉丝点击