必威体育Betway必威体育官网
当前位置:首页 > IT技术

Thread的Sleep方法详解,

时间:2019-11-02 14:14:29来源:IT技术作者:seo实验室小编阅读:77次「手机版」
 

thread.sleep

/*

1.Thread.sleep(毫秒)

2.sleep方法是一个静态方法

3.该方法的作用:阻塞该线程,让给其他线程

*/

public class fuck4 {

public static void main(String[] args) throws InterruptedException{

Thread t1=new professor();

t1.setName("t1");

t1.start();

//阻塞主线程

for(int i=0;i<10;i++){

System.out.println(Thread.currentThread().getName()+"-->"+i);

Thread.sleep(500);

}

}

}

class professor extends Thread{

//Thread中的run方法不抛出异常,所以重写run方法后,在run方法的声明位置上不能使用throw

//必须使用try catch

public void run(){

for(int i=0;i<50;i++){

System.out.println(Thread.currentThread().getName()+"-->"+i);

try{

Thread.sleep(1000);

}catch(InterruptedException e){

e.printstacktrace();

}

}

//m1();

}

//public static void m1 throws Exception(){}//m1可以抛出异常

}

/*

面试

*/

public class fuck5 {

public static void main(String[] args) throws InterruptedException{

//创建线程

Thread t=new processor();

t.setName("t");

//启动线程

t.start();

//休眠

t.sleep(5000);//等同于Thread.sleep(5000).阻塞的还是当前线程,和t线程无关

System.out.println("hello java");

A a=null;

a.m1();//不会报空指针异常,空指针异常是指空指针指向对象,m1为静态方法,不是对象

}

}

class processor extends Thread{

public void run(){

for(int i=0;i<10;i++){

System.out.println(Thread.currentThread().getName()+"--->"+i);

}

}

}

class A{

public static void m1(){}

}

/*

某线程正在休眠,如何打断它的休眠

以下方法依靠的是异常处理机制

*/

public class fuck6{

public static void main(String[] args) throws InterruptedException{

Thread t=new Thread(new processor());

t.setName("t");

t.start();

//5s之后终止

Thread.sleep(5000);

//打断t的休眠

t.interrupt();

}

}

class processor implements Runnable{

public void run(){

try{

Thread.sleep(1000000);

System.out.println("heetian");}

catch(InterruptedException e){

e.printStackTrace();}

  for(int i=0;i<10;i++){

System.out.println(Thread.currentThread().getName()+"--->"+i);

}

}

}

/*

如何正确更好的终止一个正在执行的线程

需求:线程启动5s之后终止

*/

public class fuck7{

public static void main(String[] args) throws InterruptedException{

processor p=new processor();

Thread t=new Thread(p);

t.setName("t");

t.start();

//5s之后终止

Thread.sleep(5000);

//终止

p.run=false; 

//因为线程是同时运行的,主线程和t线程同时运行,主线程5秒后run变成false,

//这时t线程刚好输出五个数,但已经不满足run=true条件,所以就终止了,究极原因是线程是同时运行的

}

}

class processor implements Runnable{

boolean run=true;

public void run(){

for(int i=0;i<10;i++){

if(run){

try{Thread.sleep(1000);}catch(InterruptedException e){e.printStackTrace();}

System.out.println(Thread.currentThread().getName()+"--->"+i);}

else{

return;}

}

}

}

文章最后发布于: 2018-06-19 14:14:03

相关阅读

论坛发帖的推广方法

对于当前网站管理员来说最烦人的事情不是建立该站,也不是空间域名的成本,而是网站的推广。我个人认为,无论使用何种方法,更多用户都可

HandlerThread的应用场景

HandlerThread是什么? 它就是一个线程,一个实现了Handler通信机制的线程,也就是说不用我们再去实现Looper的一系列工作了。实现了这

彻底删除微信记录方法总结,那些让你相见恨晚的删除技巧

微信聊天记录彻底删除一直是大家关注的问题,有的小伙伴也掌握了一些删除方法,但是在操作上,删除效果上都不是太理想,不是过于复杂,就是

登录lol时提示发生未知的directx错误的修复方法

在登陆LOL时,程序终止并弹出窗口提示&ldquo;未知的directx错误,《英雄联盟》无法启动,请确保你的显卡更新了最新的显卡驱动&rdquo;,对

简易方法破解汽车之家的Css:Content-反爬

通过js获取到伪类的属性值的script = "return window.getComputedStyle(document.getElementsByClassName('" + classname + "')[

分享到:

栏目导航

推荐阅读

热门阅读