Java 多线程编程(2)

通过继承Thread来创建线程

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

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

实例

// 通过继承 Thread 创建线程class NewThread extends Thread {

   NewThread() {

      // 创建第二个新线程

      super("Demo Thread");

      System.out.println("Child thread: " + this);

      start(); // 开始线程

   }



   // 第二个线程入口

   public void run() {

      try {

         for(int i = 5; i > 0; i--) {

            System.out.println("Child Thread: " + i);

                            // 让线程休眠一会

            Thread.sleep(50);

         }

      } catch (InterruptedException e) {

         System.out.println("Child interrupted.");

      }

      System.out.println("Exiting child thread.");

   }}

public class ExtendThread {

   public static void main(String args[]) {

      new NewThread(); // 创建一个新线程

      try {

         for(int i = 5; i > 0; i--) {

            System.out.println("Main Thread: " + i);

            Thread.sleep(100);

         }

      } catch (InterruptedException e) {

         System.out.println("Main thread interrupted.");

      }

      System.out.println("Main thread exiting.");

   }}

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

Child thread: Thread[Demo Thread,5,main]Main Thread: 5Child Thread: 5Child Thread: 4Main Thread: 4Child Thread: 3Child Thread: 2Main Thread: 3Child Thread: 1Exiting child thread.Main Thread: 2Main Thread: 1Main thread exiting.

线程的几个主要概念

在多线程编程时,你需要了解以下几个概念:

  • 线程同步
  • 线程间通信
  • 线程死锁
  • 线程控制:挂起、停止和恢复

多线程的使用

有效利用多线程的关键是理解程序是并发执行而不是串行执行的。例如:程序中有两个子系统需要并发执行,这时候就需要利用多线程编程。

通过对多线程的使用,可以编写出非常高效的程序。不过请注意,如果你创建太多的线程,程序执行的效率实际上是降低了,而不是提升了。

请记住,上下文的切换开销也很重要,如果你创建了太多的线程,CPU花费在上下文的切换的时间将多于执行程序的时间!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值