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是什么? 它就是一个线程,一个实现了Handler通信机制的线程,也就是说不用我们再去实现Looper的一系列工作了。实现了这
微信聊天记录彻底删除一直是大家关注的问题,有的小伙伴也掌握了一些删除方法,但是在操作上,删除效果上都不是太理想,不是过于复杂,就是
在登陆LOL时,程序终止并弹出窗口提示“未知的directx错误,《英雄联盟》无法启动,请确保你的显卡更新了最新的显卡驱动”,对
通过js获取到伪类的属性值的script = "return window.getComputedStyle(document.getElementsByClassName('" + classname + "')[