Thread类的常用方法--设置线程名称的方法和Sleep方法
Thread类的常用方法--设置线程名称的方法
设置线程的名称:(了解)
1.使用Thread类中的方法setName(名字)
void setName ( String name)改变线程名称,使之与参数name相同。
2.创建一个带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类,让父类(Thread)给子线程起一个名字
Thread ( String name)分配新的 Thread 对象。
public class MyThread extends Thread{ public MyThread(){} public MyThread(String name){ super(name); } @Override public void run() { System.out.println(Thread.currentThread().getName()); }
public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.setName("乌拉"); myThread.start(); new MyThread("旺财哦").start(); }
package thread; public class Demo4_Thread { public static void main(String[] args) { new Thread() { public void run() { this.setName("线程A"); System.out.println(this.getName() +": aaaaaa"); } }.start(); new Thread() { public void run() { this.setName("线程B"); System.out.println(this.getName() +": bbbbb"); } }.start(); } }
Thread类的常用方法--Sleep方法
public static void sleep(Long millis) ;使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行〉。毫秒数结束之后,线程继续执行
public static void main(String[] args){ //模拟秒表 for (int i = 1; i <=60 ; i++) { System.out .println(i); //使用Thread类的sleep方法让程序睡眠1秒钟 try { Thread.sleep( 1000) ; }catch (InterruptedException e) { e.printStackTrace(); } }
//展示线程sleep的时候不释放synchronized的monitor,等sleep时间到了以后, // 正常结束后才会释放锁 public class SleepDontReleaseMonitor implements Runnable{ public static void main(String[] args) { SleepDontReleaseMonitor sdrm = new SleepDontReleaseMonitor(); //开启两个线程 new Thread(sdrm).start(); new Thread(sdrm).start(); } @Override public void run() { syn(); } private synchronized void syn(){ System.out.println("线程" +Thread.currentThread().getName()+"获取到monitor"); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程" +Thread.currentThread().getName()+"退出同步代码块"); } }

浙公网安备 33010602011771号