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

高端网站开发制作手机wap网站模板下载

高端网站开发制作,手机wap网站模板下载,沈阳建筑大学信息公开网,网络营销案例可口可乐接上 多线程编程实战01 第三个多线程程序 package thread.test;//定义了一个叫MyThread3的类,实现了Runable接口,所以它必须重写run()方法 class MyThread3 implements Runnable {Overridepublic void run() {//线程执行的具体内容//进入一个无限循环,…

接上

多线程编程实战01


 第三个多线程程序

package thread.test;//定义了一个叫MyThread3的类,实现了Runable接口,所以它必须重写run()方法
class MyThread3 implements Runnable {@Overridepublic void run() {//线程执行的具体内容//进入一个无限循环,每一秒输出一句“hello runnable”while (true) {System.out.println("hello runnable");try {//让线程睡眠1秒。避免一直疯狂输出Thread.sleep(1000);} catch (InterruptedException e) {//如果睡眠被中断,抛出运行时异常RuntimeExceptionthrow new RuntimeException(e);}}}
}//主程序入口
public class ThreadDemo3 {public static void main(String[] args) {//新建一个线程,线程要执行的人物是MyThread3实现的run()方法Thread t=new Thread(new MyThread3());//启动线程,注意:不是调用run(),这样才会新建一个线程t.start();//主线程也进入无限循环while (true) {//每一秒输出一行“hello main”System.out.println("hello main");try {//让线程休眠1秒Thread.sleep(1000);} catch (InterruptedException e) {//如果休眠中断,抛出运行时异常throw new RuntimeException(e);}}}
}

Runnable 和 Thread 的区别

特点Runnable 接口Thread
本质是一个接口是一个,继承自 Object,实现了 Runnable 接口
用途只定义了一个任务(run() 方法),不负责线程的创建既可以定义任务(重写 run()),也能直接创建和管理线程
继承限制可以避免单继承局限(因为类还可以继承别的类)继承了 Thread 后,不能再继承其他类(Java 单继承)
推荐使用场景任务和线程分离,程序更灵活、解耦小项目、简单场景下可以直接继承 Thread 简单快速

为什么写 Thread t = new Thread(new MyThread3());

原因就是:

  • new MyThread3() 是一个实现了 Runnable 的对象,它描述了线程应该执行什么任务(即 run() 方法里的代码)。

  • new Thread(Runnable target) 这个构造方法,把 Runnable 包装进去,真正由 Thread 来创建和控制线程

  • 最后通过 t.start() 来开启这个线程,执行 MyThread3.run() 里面的逻辑。

简单理解就是

  • Runnable 负责写任务(要干什么事)。

  • Thread 负责开辟新线程、调度执行这个任务。

打个比方(形象理解)

  • Runnable 就像是工作说明书(比如说明:搬砖、洗衣服、打扫卫生)。

  • Thread 就像是真正的工人,要按照说明书去干活。

你可以写好很多不同的说明书(不同的 Runnable),然后招很多工人(Thread)去根据说明来工作。

例子

方式一:实现 Runnable(推荐 ✅)
class MyRunnable implements Runnable {@Overridepublic void run() {System.out.println("任务开始了");}
}public class Test {public static void main(String[] args) {Runnable r = new MyRunnable();  // 任务Thread t = new Thread(r);        // 线程 + 任务t.start();                      // 开启线程}
}
 方式二:直接继承 Thread(简单,但不够灵活)
class MyThread extends Thread {@Overridepublic void run() {System.out.println("任务开始了");}
}public class Test {public static void main(String[] args) {Thread t = new MyThread();   // 直接是线程t.start();                  // 开启线程}
}

总结一下

  • Runnable 只管写任务,不管线程怎么执行。

  • Thread 既是线程本身,也能直接运行任务。

  • 推荐用 Runnable,因为更加灵活,避免继承带来的局限,可以更好地与线程池等高级功能结合。


文章转载自:

http://bY7PQvYC.gjssk.cn
http://80wJ7dJb.gjssk.cn
http://wNWyOlIm.gjssk.cn
http://fquSODB8.gjssk.cn
http://WleebmtW.gjssk.cn
http://sHizhFyt.gjssk.cn
http://VoxJvGh2.gjssk.cn
http://ztOgwrPQ.gjssk.cn
http://LrtXMgWl.gjssk.cn
http://bS397bvo.gjssk.cn
http://uG2GNjDS.gjssk.cn
http://zDmvHnhu.gjssk.cn
http://16ZX1zC1.gjssk.cn
http://uTJu1CyH.gjssk.cn
http://z1P2qYLA.gjssk.cn
http://Op50NCOz.gjssk.cn
http://dmemY8mV.gjssk.cn
http://2135cRxx.gjssk.cn
http://fqCYto3Q.gjssk.cn
http://Ke0xATYM.gjssk.cn
http://xmkyQslN.gjssk.cn
http://F4PFmhGL.gjssk.cn
http://xFQrigjb.gjssk.cn
http://Nd2T7rBP.gjssk.cn
http://kCDccw6j.gjssk.cn
http://LeyMCt2G.gjssk.cn
http://ExwZcMmb.gjssk.cn
http://nuOnuV91.gjssk.cn
http://e3556VS8.gjssk.cn
http://dZgP4pis.gjssk.cn
http://www.dtcms.com/wzjs/735678.html

相关文章:

  • 做网站选哪家公司南宁房地产最新消息
  • 包装材料东莞网站建设网站开发框架有哪些
  • 做网站江西大连企业做网站公司排名
  • 做剧情游戏的网站邢台市政建设集团网站
  • .net asp可以外链其它网站吗北京房产交易网官网
  • 微信运营工具如何做seo网站
  • 大连电子学校网站建设哪个网站做外链视频好
  • 清远做网站哪家好做安全防护信息的网站
  • 工程行业网站h5小游戏在线玩
  • 博客网站开发源代码优化方案英语答案
  • 千套模板快速自助建站消防工程师证怎么考
  • 苏州哪家做网站好wordpress相册效果
  • 如何做导购网站自己做的网站如何引流
  • 用html做网站源代码流量套餐汇总网站
  • 苏州建设工程质量监督站网站网站前置或专项审批
  • 趴比库的网站是谁建设的泰安高品质网站建设
  • 安平县护栏网站建设网站建设三秒原则
  • 网站平台建设费用的会计核算高水平的网站建设公司
  • 吉粤建设工程股份有限公司网站安阳建设局网站
  • 想让一个网站上线需要怎么做雅思培训班价格一览表
  • 网站页面布局模板wordPress如何设置
  • 可以做高清思维导图的网站深圳网站建设的特殊性
  • 上海网站建设上海网站制作双城网站
  • 网站建设与维护成绩查询个人信息服务平台登录
  • ps做汽车网站下载aso排名优化知识
  • 做餐饮如何加入外卖网站网页制作与网站建设试卷及答案
  • 域名建设好了怎么在建设网站企业网站的建立视频
  • 长春网站建设wordpress最强的教育网站
  • 双峰网站建设网站手机端跳转页面模板
  • 网站建设微信软文c2c网站开发毕业设计