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

株洲建设工程造价信息网站苏州市建设局招标网站首页

株洲建设工程造价信息网站,苏州市建设局招标网站首页,网站建设需要钱吗,vs2013 网站建设目录 一、线程的定义 二、线程的实现 三、线程状态 程序并发执行多个任务 二、线程的实现 1、继承Thread类创建线程:通过继承Java的Thread类并重写其run()方法,可以创建一个新的线程。然后,通过调用线程的start()方法来启动线程&#xf…

目录

一、线程的定义

二、线程的实现

三、线程状态


程序并发执行多个任务

二、线程的实现

1、继承Thread类创建线程:通过继承Java的Thread类并重写其run()方法,可以创建一个新的线程。然后,通过调用线程的start()方法来启动线程,这将导致JVM调用线程的run()方法。注意,不应直接调用run()方法,因为这样只会作为普通方法调用,而不会启动新的线程。
2、实现Runnable接口创建线程:另一种创建线程的方式是实现Java的Runnable接口,并同样重写其run()方法。然后,可以创建一个Thread对象,并将Runnable对象作为参数传递给Thread对象的构造函数。最后,通过调用Thread对象的start()方法来启动线程。这种方式的一个优点是,一个类可以继承其他类并实现Runnable接口,从而实现多重继承的效果。

public class MyThread extends Thread {  @Override  public void run() {  // 线程执行的代码  for (int i = 0; i < 5; i++) {  System.out.println("MyThread running: " + i);  }  }  public static void main(String[] args) {  // 创建并启动线程  MyThread thread = new MyThread();  thread.start();  // 主线程继续执行  for (int i = 0; i < 5; i++) {  System.out.println("Main thread running: " + i);  }  }  
}
public class MyRunnable implements Runnable {  @Override  public void run() {  // 线程执行的代码  for (int i = 0; i < 5; i++) {  System.out.println("MyRunnable running: " + i);  }  }  public static void main(String[] args) {  // 创建Runnable对象  MyRunnable runnable = new MyRunnable();  // 创建Thread对象,并将Runnable对象作为参数  Thread thread = new Thread(runnable);  // 启动线程  thread.start();  // 主线程继续执行  for (int i = 0; i < 5; i++) {  System.out.println("Main thread running: " + i);  }  }  
}

三、线程状态

在Java中,线程可以处于多种状态,这些状态反映了线程在其生命周期中的不同阶段。Java线程状态的主要类型包括:新建(NEW)、就绪(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)、超时等待(TIMED_WAITING)和终止(TERMINATED)。下面是对这些状态的详细解释:

  1. 新建(NEW):当线程对象被创建但尚未启动(即尚未调用start()方法)时,线程处于新建状态。此时,线程对象已经分配了必要的内存和其他资源,但它还没有开始执行。

  2. 就绪(RUNNABLE):一旦线程启动(即调用了start()方法),它就进入了就绪状态。就绪状态的线程已经具备运行的所有条件,正在等待CPU的调度。当CPU空闲时,线程调度器会从就绪状态的线程中选择一个来执行。

  3. 阻塞(BLOCKED):当一个线程试图获取一个内部的对象锁(而不是java.util.concurrent库中的锁),而该锁被其他线程持有时,该线程会进入阻塞状态。当持有锁的线程释放锁时,阻塞状态的线程会进入就绪状态,等待CPU的调度。

  4. 等待(WAITING):当线程执行了对象的wait()方法时,它会进入等待状态。等待状态的线程不会占用CPU资源,它等待其他线程执行特定对象的notify()或notifyAll()方法来唤醒它。唤醒后,线程会进入就绪状态。

  5. 超时等待(TIMED_WAITING):这是线程等待的另一个状态,但带有超时参数。当线程执行了Thread.sleep(long millis)、Object.wait(long timeout)或Thread.join(long millis)等带有超时参数的方法时,它会进入超时等待状态。如果在指定的超时时间内没有被唤醒或超时结束,线程会结束等待,并返回到就绪状态。

  6. 终止(TERMINATED):当线程的run()方法执行完毕,或者因异常退出,线程就进入了终止状态。终止状态的线程不会再执行任何操作,它的生命周期已经结束。

http://www.yayakq.cn/news/403020/

相关文章:

  • 网站建设要多少钱app前端开发就是做网站吗
  • 网站建设实施过程互联网金融p2p网站建设
  • 网站幕布拍摄wordpress后台打开太慢
  • 做网站广告联盟赚钱国外做logo的网站
  • 临海市住房与城乡建设规划局网站电商平台商城系统搭建
  • 帝国手机网站cms系统二手房交易税费
  • 西安做网站的公司地址东莞定制网站建设
  • html网站设计作品丰镇市网站
  • 南京地区网站开发知名网站建设推广
  • 昆明网红自动优化网站建设电话
  • 网站百度排名怎么做快wordpress重装
  • 游戏类企业网站模板建设一个网站成本多少钱
  • 一个网站怎么做软件好用网站开发需要哪些技术人员
  • seo对于电子商务网站推广的作用兰州装修公司有哪些
  • 公司如何做网站推广中国十大服装设计院校
  • 定制网站开发公司哪家好?点击查看平面图设计网站
  • 深圳购物网站建企业形象通用网站
  • 做外贸网站有什么用可信网站 quot 验证能防范哪些安全.
  • 婴儿网站模板wordpress 局域网访问不了
  • 嘉兴网站制作套餐上海市建筑建材业网招标公告
  • 工程机械 网站模板网站备案幕布ps
  • 山西焦煤集团公司网站物联网专业
  • 做淘宝客要有网站吗泰安网络公司推荐
  • 做精细化工网站邯郸网站优化建设
  • 做logo的ppt模板下载网站五台建设局网站
  • 关于网站建设的合同协议dede 网站栏目管理
  • 企业建站模板东莞网站优化关键词推广
  • 网站对于企业的好处个人简历网站开发
  • 桂林网站推广高中网站建设课程
  • 直播一级a做爰片免费网站电商公司运营策略