Latest web development tutorials
×

Java หลักสูตร

Java หลักสูตร Java แนะนำโดยย่อ Java การกำหนดค่าการพัฒนาสภาพแวดล้อม Java พื้นฐานไวยากรณ์ Java วัตถุและการเรียน Java ชนิดข้อมูลพื้นฐาน Java ประเภทตัวแปร Java การปรับเปลี่ยน Java ผู้ประกอบการ Java โครงสร้างห่วง Java สาขาโครงสร้าง Java Number หมวดหมู่ Java Character หมวดหมู่ Java String หมวดหมู่ Java StringBuffer Java แถว Java วันที่เวลา Java นิพจน์ปกติ Java ทาง Java Stream,File,IO Java Scanner หมวดหมู่ Java การจัดการข้อยกเว้น

Java เชิงวัตถุ

Java สืบทอด Java Override/Overload Java polymorphism Java ระดับนามธรรม Java บรรจุภัณฑ์ Java อินเตอร์เฟซ Java บรรจุภัณฑ์

Java การสอนที่ทันสมัย

Java โครงสร้างข้อมูล Java คอลเลกชันกรอบ Java ยาชื่อสามัญ Java การทำให้เป็นอันดับ Java เขียนโปรแกรมเครือข่าย Java ส่ง Email Java การเขียนโปรแกรมแบบมัลติเธรด Java Appletรากฐาน Java เอกสารความคิดเห็น Java ตัวอย่าง Java 8 คุณสมบัติใหม่ Java MySQL สัมพันธ์

ตัวอย่าง Java - Get รัฐด้าย

ตัวอย่าง Java ตัวอย่าง Java

หัวข้อ Java ในวงจรชีวิตสามารถแบ่งออกเป็นห้ารัฐ

  • 1. สร้างรัฐใหม่ (ใหม่) สร้างวัตถุหัวข้อใหม่
  • 2. รัฐพร้อม (Runnable): หลังจากวัตถุด้ายถูกสร้างขึ้นหัวข้ออื่น ๆ เรียกว่าเริ่มต้น () วิธีการของวัตถุ สถานะของด้ายหัวข้อที่ทำงานในสระว่ายน้ำตั้งอยู่ได้กลายเป็นที่ทำงานได้รอที่จะได้รับสิทธิในการใช้ซีพียู
  • สถานะ 3. Run (วิ่ง): ด้ายรัฐพร้อมรับซีพียูโค้ดโปรแกรม
  • 4. ปิดกั้น (บล็อค): หัวข้อถูกปิดกั้นด้วยเหตุผลบางอย่างที่จะให้ขึ้นสิทธิที่จะใช้ CPU หยุดทำงานชั่วคราว จนกระทั่งด้ายเข้าสู่สถานะพร้อมโอกาสที่จะไปทำงาน กรณีที่ถูกบล็อกสามประเภท:
    • (A) รอสำหรับการปิดกั้น: การดำเนินการเรียกใช้ด้ายรอ () วิธีการ JVM จะด้ายลงไปในสระว่ายน้ำที่รอคอย
    • (B), การปิดกั้นการซิงโคร: หัวข้อการทำงานในการได้รับวัตถุของการประสานล็อคถ้าล็อคประสานถูกครอบครองโดยหัวข้ออื่นที่ JVM จะล็อคลงไปในสระด้าย
    • (C) อื่น ๆ บล็อก: ทำงานด้ายการดำเนินการนอนหลับ () หรือเข้าร่วม () วิธีการหรือออกคำขอ I / O JVM จะตั้งกระทู้ถูกปิดกั้น เมื่อการนอนหลับ () หมดเวลาการเข้าร่วม () รอด้ายยุติหรือเวลาออกหรือ I / O การประมวลผลเป็นที่เรียบร้อยแล้วด้ายเข้าสู่สถานะพร้อมอีกครั้ง
  • 5. รัฐตาย (ตาย): การดำเนินด้ายเนื่องจากความผิดปกติมากกว่าหรือออกจากเมธอด run () ปลายด้ายของวงจรชีวิต

006

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการที่จะได้รับสถานะของด้าย:

/*
 author by w3cschool.cc
 Main.java
 */

class MyThread extends Thread{
   boolean waiting= true;
   boolean ready= false;
   MyThread() {
   }
   public void run() {
      String thrdName = Thread.currentThread().getName();
      System.out.println(thrdName + " 启动");
      while(waiting)
      System.out.println("等待:"+waiting);
      System.out.println("等待...");
      startWait();
      try {
         Thread.sleep(1000);
      }
      catch(Exception exc) {
         System.out.println(thrdName + " 中断。");
      }
      System.out.println(thrdName + " 结束。");
   }
   synchronized void startWait() {
      try {
         while(!ready) wait();
      }
      catch(InterruptedException exc) {
         System.out.println("wait() 中断。");
      }
   }
   synchronized void notice() {
      ready = true;
      notify();
   }
}
public class Main {
   public static void main(String args[]) 
   throws Exception{
      MyThread thrd = new MyThread();
      thrd.setName("MyThread #1");
      showThreadStatus(thrd);
      thrd.start();
      Thread.sleep(50);
      showThreadStatus(thrd);
      thrd.waiting = false;
      Thread.sleep(50);
      showThreadStatus(thrd);
      thrd.notice();
      Thread.sleep(50);
      showThreadStatus(thrd);
      while(thrd.isAlive())
      System.out.println("alive");
      showThreadStatus(thrd);
   }
   static void showThreadStatus(Thread thrd) {
      System.out.println(thrd.getName()+" 存活:" +thrd.isAlive()+" 状态:" + thrd.getState() );
   }
}

รหัสดังกล่าวจะดำเนินการส่งออกเป็น:

……
alive
alive
alive
MyThread #1 结束。
alive
alive
alive
alive
alive
alive
alive
MyThread #1 存活:false 状态:TERMINATED

ตัวอย่าง Java ตัวอย่าง Java