当前位置: 首页 > news >正文

网页设计制作要求北京优化网站建设

网页设计制作要求,北京优化网站建设,网站做seo收录,国内网站设计经典案例Thread类的基本用法🔎1.线程创建🌻继承Thread类🌼继承Thread重写run()方法🌼继承Thread匿名内部类🌻实现Runnable接口🌼实现Runnable接口重写run()方法🌼实现Runnable接口匿名内部类&#x1f33…

Thread类的基本用法

  • 🔎1.线程创建
    • 🌻继承Thread类
      • 🌼继承Thread重写run()方法
      • 🌼继承Thread匿名内部类
    • 🌻实现Runnable接口
      • 🌼实现Runnable接口重写run()方法
      • 🌼实现Runnable接口匿名内部类
    • 🌻使用Lambda表达式
  • 🔎2.线程中断
    • 🌻线程立即中断
    • 🌻稍等片刻中断
    • 🌻线程不中断
  • 🔎3.线程等待
  • 🔎4.线程休眠
  • 🔎5.线程的六种状态
  • 🔎结尾

🔎1.线程创建

线程创建的3种方式

  • 继承Thread类
  • 实现Runnable接口
  • 使用Lambda表达式

🌻继承Thread类

🌼继承Thread重写run()方法

class ExThread extends Thread {@Overridepublic void run() {System.out.println("通过继承Thread类创建线程");}
}public class Main{public static void main(String[] args) {Thread t = new ExThread();//启动线程t.start();}
}

🌼继承Thread匿名内部类

public class HomeWork {public static void main(String[] args) {Thread t = new Thread() {@Overridepublic void run() {System.out.println("通过继承Thread类创建线程");}};}
}

🌻实现Runnable接口

🌼实现Runnable接口重写run()方法

class ExRunnable implements Runnable {@Overridepublic void run() {System.out.println("通过实现Runnable接口创建线程");}
}public class HomeWork {public static void main(String[] args) {ExRunnable runnable = new ExRunnable();Thread t = new Thread(runnable);//启动线程t.start();}
}

🌼实现Runnable接口匿名内部类

public class HomeWork {public static void main(String[] args) {Thread t = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("通过实现Runnable接口创建线程");}});}
}

🌻使用Lambda表达式

public class HomeWork {public static void main(String[] args) {Thread t = new Thread(() -> {System.out.println("使用Lambda创建线程"); });}
}

🔎2.线程中断

线程中断就是让线程停下来
那么如何才能让线程停下来呢?
那就是让该线程的入口方法执行完毕

下面来简单介绍下3种线程中断的情况

1.线程立即中断
2.线程稍等片刻中断
3.线程不中断

举个栗子

你正在打游戏,然后你的女朋友打电话叫你去陪她逛街
这时候你有3个选择
1.立刻把游戏停了陪她逛街(线程立即中断)
2.和她说打完这把再去(线程稍等片刻中断)
3.直接把电话挂了,继续打游戏(线程不中断)

下面来看下代码

🌻线程立即中断

public class Main {public static void main(String[] args) {Thread t = new Thread(() -> {//currentThread是获取到当前线程的实例//此处currentThread()得到的对象就是t//isInterrupted()是t对象自带的标志位-->默认是false//可以理解成while(!false) --> while(true) --> 死循环while(!Thread.currentThread().isInterrupted()) {System.out.println("hello t1");try {//休眠0.5sThread.sleep(500);} catch(InterruptedException e) {e.printStackTrace();break;}}System.out.println("线程立即中断");});//启动线程t.start();try {//休眠3sThread.sleep(3000);} catch(InterruptedException e) {e.printStackTrace();}t.interrupt();//将标志位设置为true}
}

🌻稍等片刻中断

public class Test1 {public static void main(String[] args) {Thread t = new Thread(() -> {while(!Thread.currentThread().isInterrupted()) {System.out.println("hello t2");try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();try {Thread.sleep(1000);} catch (InterruptedException ee) {ee.printStackTrace();}break;}}System.out.println("线程稍等片刻中断");});//启动线程t.start();try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}t.interrupt();}  
}

🌻线程不中断

public class Test1 {public static void main(String[] args) {Thread t = new Thread(() -> {while(!Thread.currentThread().isInterrupted()) {System.out.println("hello t3");try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("线程不中断");});//启动线程t.start();try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}t.interrupt();}
}

🔎3.线程等待

在这里插入图片描述

等于这上述代码
我们无法确定打印顺序
先输出hello t 还是先输出hello bibu

在这里插入图片描述

但在main线程加入了t.join()(线程等待)之后,就会先去打印hello t了

这是因为在main线程中加入t.join(),如果此时的 t线程还没有执行完,main线程就会发生堵塞
也就是说,等到 t线程执行完毕后再去执行main线程的程序

需要注意的是

  • 在t1线程中调用t2.join(),就是t2先执行完毕再去执行t1
  • 在t2线程种调用t3.join(),就是t3先执行完毕再去执行t2
  • t.join()这个方法也可以设置一个时间

在这里插入图片描述

解释

  • 这里设置的时间就是说最多等待 t线程执行1000ms(1s),如果还没有执行完.那main线程就会继续执行
  • 举个栗子
    • 你的女朋友让你在她宿舍楼下等她10分钟
    • 你可以选择一直等着她( t.join())
    • 也可以选择就等10分钟( t.join(1000))

🔎4.线程休眠

让线程进入一定时间的停止

public class Main{public static void main(String[] args) {Thread t = new Thread(() -> {while(true) {try {//让线程进入休眠Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}});t.start();}
}

🔎5.线程的六种状态

  • NEW: 安排了工作, 还未开始行动
  • RUNNABLE: 就绪状态. 又可以分成正在工作中和即将开始工作
  • TERMINATED:系统中的线程已经执行完了,Thread对象还在
  • TIMED_WATING:指定时间等待
  • BLOCKED:等待出现状态
  • WAITING:使用wait方法出现的状态

具体参考: 多线程的几种状态

🔎结尾

如果大家有什么不太理解的,可以私信或者评论区留言,一起加油

http://www.hkea.cn/news/358246/

相关文章:

  • 四川建设网官网登录入口泉州seo外包
  • 网站有备案 去掉备案网络营销意思
  • 新建网站推广给企业百度问一问在线咨询客服
  • 曹鹏wordpress建站seo视频广东疫情防控措施
  • 网站开发的岗位排名优化工具
  • 岳阳做网站怎么做推广让别人主动加我
  • 不断改进网站建设公司百度官网优化
  • 万户网站宁波网站制作优化服务
  • 潍坊快速网站排名网站是怎么做出来的
  • 聚美优品的pc网站建设注册网址
  • 陕西省住房与城乡建设厅网站免费b站推广软件
  • 淮南市住房与城乡建设部网站网店买卖有哪些平台
  • 网页qq表情佛山百度快速排名优化
  • 网站建设方案论文1500社会新闻最新消息
  • 网站组建 需求分析市场监督管理局职责
  • 云课堂哪个网站做的好厦门关键词优化seo
  • 中企动力沈阳分公司seo免费诊断电话
  • 网站vps被黑湖人最新排名最新排名
  • 如何夸奖客户网站做的好seo课程心得体会
  • 有哪些做电子商务的网站时空seo助手
  • 临沂百度网站电脑培训机构哪个好
  • 无锡专业做网站的公司怎样把自己的产品放到网上销售
  • 大学网站建设管理办法推广技巧
  • 长春做网站公司seo关键词排名优化软件怎么选
  • 网站开发未按合同约定工期完工seo关键词排名怎么提升
  • 创可贴app海报制作网站百度seo优化方法
  • 龙岗品牌网站建设2024年新闻摘抄
  • 南阳住房和城乡建设厅网站招聘网站排名
  • 如何做网站活动封面建站的公司
  • 温州网站建设培训营销推广方案包括哪些内容