您身边的网站建设专家
成功案例

【建站服务】微山爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广-域名申请

日期: 2022-09-21 05:14:15 浏览数:4


上往建站提供服务器空间服务商百度快照排名网站托管百度推广运营,致力于设计外包服务与源代码定制开发360推广搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。


微山爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

网站建设.png

  public static void main(String args[]) {      RunnableDemo R1 = new RunnableDemo( "Thread-1");      R1.start();            RunnableDemo R2 = new RunnableDemo( "Thread-2");      R2.start();   }   }

编译以上程序运行结果如下:

Creating Thread-1Starting Thread-1Creating Thread-2Starting Thread-2Running Thread-1Thread: Thread-1, 4Running Thread-2Thread: Thread-2, 4Thread: Thread-1, 3Thread: Thread-2, 3Thread: Thread-1, 2Thread: Thread-2, 2Thread: Thread-1, 1Thread: Thread-2, 1Thread Thread-1 exiting.Thread Thread-2 exiting.

通过继承Thread来创建线程

创建一个线程的第二种方法是创建一个新的类,该类继承 Thread 类,然后创建一个该类的实例。

继承类必须重写 run() 方法,该方法是新线程的入口点。它也必须调用 start() 方法才能执行。

该方法尽管被列为一种多线程实现方式,但是本质上也是实现了 Runnable 接口的一个实例。

实例

class ThreadDemo extends Thread {   private Thread t;   private String threadName;     ThreadDemo( String name) {      threadName = name;      System.out.println("Creating " +  threadName );   }     public void run() {      System.out.println("Running " +  threadName );      try {         for(int i = 4; i > 0; i--) {            System.out.println("Thread: " + threadName + ", " + i);            // 让线程睡眠一会            Thread.sleep(50);         }      }catch (InterruptedException e) {         System.out.println("Thread " +  threadName + " interrupted.");      }      System.out.println("Thread " +  threadName + " exiting.");   }     public void start () {      System.out.println("Starting " +  threadName );      if (t == null) {         t = new Thread (this, threadName);         t.start ();      }   }} public class TestThread {   public static void main(String args[]) {      ThreadDemo T1 = new ThreadDemo( "Thread-1");      T1.start();            ThreadDemo T2 = new ThreadDemo( "Thread-2");      T2.start();   }   }

编译以上程序运行结果如下:

Creating Thread-1Starting Thread-1Creating Thread-2Starting Thread-2Running Thread-1Thread: Thread-1, 4Running Thread-2Thread: Thread-2, 4Thread: Thread-1, 3Thread: Thread-2, 3Thread: Thread-1, 2Thread: Thread-2, 2Thread: Thread-1, 1Thread: Thread-2, 1Thread Thread-1 exiting.Thread Thread-2 exiting.

Thread 方法

下表列出了Thread类的一些重要方法:

序号方法描述
1public void start()
使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
2public void run()
如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
3public final void setName(String name)
改变线程名称,使之与参数 name 相同。
4public final void setPriority(int priority)
 更改线程的优先级。
5public final void setDaemon(boolean on)
将该线程标记为守护线程或用户线程。
6public final void join(long millisec)
等待该线程终止的时间最长为 millis 毫秒。
7public void interrupt()
中断线程。
8public final boolean isAlive()
测试线程是否处于活动状态。

上述方法是被 Thread 对象调用的,下面表格的方法是 Thread 类的静态方法。

序号方法描述
1public static void yield()


blic final void join(long millisec)

等待该线程终止的时间最长为 millis 毫秒。

7 public void interrupt()

中断线程。

8 public final boolean isAlive()

测试线程是否处于活动状态。

上述方法是被 Thread 对象调用的,下面表格的方法是 Thread 类的静态方法。


序号 方法描述

1 public static void yield()

暂停当前正在执行的线程对象,并执行其他线程。

2 public static void sleep(long millisec)

在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。

3 public static boolean holdsLock(Object x)

当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true。

4 public static Thread currentThread()

返回对当前正在执行的线程对象的引用。

5 public static void dumpStack()

将当前线程的堆栈跟踪打印至标准错误流。

实例

如下的ThreadClassDemo 程序演示了Thread类的一些方法:


DisplayMessage.java 文件代码:

// 文件名 : DisplayMessage.java

// 通过实现 Runnable 接口创建线程

public class DisplayMessage implements Runnable {

   private String message;

   

   public DisplayMessage(String message) {

      this.message = message;

   }

   

   public void run() {

      while(true) {

         System.out.println(message);

      }

   }

}


GuessANumber.java 文件代码:

// 文件名 : GuessANumber.java

// 通过继承 Thread 类创建线程

 

public class GuessANumber extends Thread {

   private int number;

   public GuessANumber(int number) {

      this.number = number;

   }

   

   public void run() {

      int counter = 0;

      int guess = 0;

      do {

         guess = (int) (Math.random() * 100 + 1);

         System.out.println(this.getName() + " guesses " + guess);

         counter++;

      } while(guess != number);

      System.out.println("** Correct!" + this.getName() + "in" + counter + "guesses.**");

   }

}


ThreadClassDemo.java 文件代码:

// 文件名 : ThreadClassDemo.java

public class ThreadClassDemo {

 

   public static void main(String [] args) {

      Runnable hello = new DisplayMessage("Hello");

      Thread thread1 = new Thread(hello);

      thread1.setDaemon(true);

      thread1.setName("hello");

      System.out.println("Starting hello thread...");

      thread1.start();

      

      Runnable bye = new DisplayMessag



微山爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广


上往建站提供搭建网站域名注册官网备案服务网店详情页设计企业网店专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管网页美工排版,致力于域名申请竞价托管软文推广全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机网站推广百度竞价托管网站建设上网建站推广服务网络公司有哪些等业务,专业团队服务,效果好。

服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)


全国咨询热线:400-111-6878

地址:全国各地都有驻点商务

Copyright © 2021 通陆科技

网站建设上往建站