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

毕节网站开发上海网页设计

毕节网站开发,上海网页设计,做淘宝客网站 首选霍常亮,wordpress固定链接设置后打不开#x1f352;前言 本文将从以下几方面来展开对Thread的介绍。 1.线程创建 2.线程中断 3.线程等待 4.线程休眠 在前面的文章中#xff0c;已经总结了关于Thread的一些理解。 在阅读本文之前#xff0c;最好对其有一些基础的了解。 文章链接: 【JavaSE】进程是什么#xff1f…前言 本文将从以下几方面来展开对Thread的介绍。 1.线程创建 2.线程中断 3.线程等待 4.线程休眠 在前面的文章中已经总结了关于Thread的一些理解。 在阅读本文之前最好对其有一些基础的了解。 文章链接: 【JavaSE】进程是什么 文章链接: 【JavaSE】初识线程线程与进程的区别 文章链接: 【JavaSE】Thread类中run和start的区别 文章目录 前言线程的创建1.继承 Thread 类2.实现Runnable接口3.匿名内部类4.匿名内部类创建 Runnable ⼦类对象5.lambda 表达式创建 Runnable ⼦类对象 线程中断1.自己设定条件**缺点** 2.使用interrupt和isInterrupted方法 线程等待✍线程休眠 线程的创建 1.继承 Thread 类 class MyThread extends Thread{Overridepublic void run() {while (true){System.out.println(hello thread);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}} } public class demo1 {public static void main(String[] args) throws InterruptedException {Thread t new MyThread();t.start();while (true){System.out.println(hello main);Thread.sleep(1000);}} }2.实现Runnable接口 class MyRunnable implements Runnable{Overridepublic void run() {while (true){System.out.println(hello thread2);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}} }public class demo2 {public static void main(String[] args) throws InterruptedException {Thread t new Thread(new MyRunnable());t.start();while (true){System.out.println(hello main2);Thread.sleep(1000);}} }3.匿名内部类 public class demo3 {public static void main(String[] args) throws InterruptedException {Thread t new Thread(){Overridepublic void run() {while (true){System.out.println(hello thread3);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}}};t.start();while (true){System.out.println( hello main);Thread.sleep(1000);}} }4.匿名内部类创建 Runnable ⼦类对象 public class demo4 {public static void main(String[] args) throws InterruptedException {Thread t new Thread((Runnable) () -{while (true){System.out.println(hello thread4);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}});t.start();while (true){System.out.println( hello main4);Thread.sleep(1000);}} }5.lambda 表达式创建 Runnable ⼦类对象 public class demo5 {public static void main(String[] args) {Thread t new Thread(()-{while (true){System.out.println(hello thred5);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}});t.start();while (true){System.out.println( hello main5);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}} }线程中断 终止线程在Java中所有的终止程序都只是“提醒建议”。真正的是否结束都是由线程本体 自己决定的。 在系统原生的线程中是有办法让别的线程强制终止的但这种设定不太好所以Java没有采纳 主要原因还是线程之间的调度是随机的。 1.自己设定条件 之所以可以结束是因为thread线程外面写了isRunning这样的条件所以才能控制 如果thread代码不这样写那么thread都会继续执行不会在意外面的条件 最终决定权还是在thread手中。 private static boolean isRunning true;public static void main(String[] args) {Thread thread new Thread(()-{while (isRunning){//自己书写条件控制线程的结束System.out.println(hello thread);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}});thread.start();try {Thread.sleep(3000);//三秒之后 } catch (InterruptedException e) {throw new RuntimeException(e);}isRunning false;//三秒之后设置 条件 终止线程System.out.println(end Thread);}运行结果如下 缺点 2.使用interrupt和isInterrupted方法 public static void main(String[] args) throws InterruptedException {Thread t new Thread(()-{// t.isInterrupted();while (!Thread.currentThread().isInterrupted()){System.out.println(hello thead);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}});t.start();Thread.sleep(3000);t.interrupt();}运行程序 发现3s之后线程确实是结束了。但是是以抛出异常中断的情况结束 这样会使结果不那么美观。那么接下来就要解决这样的问题。 解决方法 我们不抛出异常而是打印出异常。 继续运行看看结果是怎样的。 我们可以看到结果中打印出了异常而线程并没有结束 我们确确实实使用了interrupt方法使标志位修改成了true了那为什么线程还会继续执行呢 线程等待 因为线程是随机调度的为了解决这样的问题从而引入了线程等待。 使用join public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(()-{for (int i 0; i 3; i) {System.out.println(hello t1);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}});Thread t2 new Thread(()-{for (int i 0; i 3; i) {System.out.println(hello t2);try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}});t1.start();t2.start();t1.join();//加入条件t2.join();//System.out.println(end main);}运行结果如下 main线程调用t1.join() t2.join(),t1 t2 继续执行 main线程等待 t1和t2谁先结束这是未知的 而t1 和 t2 比main先结束这是已知的。 如果想要定义t1和t2的先后结束顺序 就在对应的t1或t2线程内调用join()方法 join还有一个带参数的方法 不带参数的join方法就是所谓的“死等” ✍线程休眠 线程休眠sleep控制的是“线程休眠的时间”而是不是“两个代码执行的间隔时间” 举例 public static void main(String[] args) throws InterruptedException {System.out.println(System.currentTimeMillis());Thread.sleep(1000);System.out.println(System.currentTimeMillis());}由打印结果可以看出这里并不是精准的1000 此处sleep是指线程阻塞的时间在这个时间段内是无法抢占CPU的执行权的 而时间结束线程由阻塞状态变为就绪状态 但这并不意味着它立即就能到CPU上去执行。 以上就是本文所有内容如果对你有帮助的话点赞收藏支持一下吧
http://www.hkea.cn/news/14507203/

相关文章:

  • 云南网站建设维修公司百度灰色关键词排名
  • 定制做网站费用邯郸企业网站制作
  • 做的网站没流量如何做律师网站
  • 企业网站建设费用会计分录男人最爱的做网站
  • 建行个人网站免费的旅游网站模板
  • 做网站的地方wordpress用vps搭建
  • 网站开发人员兼职免费博客 wordpress
  • 做网站用什么国外的空间比较好网站的建设步骤
  • 做头像的网站横杆带字网站建设资金方案
  • 手机网站整站源码下载百度seo排名优化提高流量
  • 实搜石家庄网站建设小程序快速排名网站系统
  • 网站建设外包注意事项软文广告范例大全
  • 河北中太建设集团有限公司网站创建全国文明城市工作要求
  • wordpress建站教程百科传奇世界官网电脑版
  • 网站更新和维护怎么做粉色博客wordpress
  • 网站cdn自己做建立自己网站要多少钱
  • 如何寻找做网站的客户免费网站制作作业
  • 常州手机网站建设用html做的美食网站
  • 十大团购网站快手自媒体平台注册入口
  • 网站建设面试自我介绍网站长尾关键词
  • 门户网站广告的类型可以自建网站吗
  • 建筑公司网站模板免费下载郑州市建设教育协会网站
  • 用thinkphp做的网站wordpress 比分插件
  • 做渠道的网站有哪些方面建设官方网站需要注意什么
  • 在中国建设工程造价管理协会网站如何做电商网站视频
  • 2018爱情动做网站祥云平台官方网站
  • 可以做行程的网站wordpress语言代码
  • 海南网站建设公司wordpress 添加播放器
  • 江津网站建设口碑wordpress调用某指定分类栏目
  • 做社交的招聘网站作业网站的设计制作案例