1. 多线程概述

  要实现多线程可以通过继承Thread和实现Runnable接口。不过这两者之间存在一些区别。其中最重要的区别就是,如果一个类继承Thread类,则不适合于多个线程共享资源,而实现了Runnable接口,就可以方便地实现资源的共享。其实细说起来并不是能不能资源共享的事情,是因为继承Thread和实现Runnable接口这两种方式新建的任务数本身就是不同的,线程与任务的对应机制也是不同的。

范例1:继承Thread类

创建了多个thread,相当于创建了多个任务,每个任务交由一个thread来完成。

 1 package test;
 2 
 3 public class MyThreadDemo1 {
 4     public static void main(String args[]) {
 5         MyThread1 mt1 = new MyThread1();
 6         MyThread1 mt2 = new MyThread1();
 7         MyThread1 mt3 = new MyThread1();
 8         mt1.start();
 9         mt2.start();
10         mt3.start();
11     }
12 
13     static class MyThread1 extends Thread {
14         private int ticket = 5;
15 
16         @Override
17         public void run() {
18             // TODO Auto-generated method stub
19             for (int i = 0; i < 100; i++)
20                 if (ticket > 0)// 当余票大于0则买票
21                 {
22                     System.out.println("卖一张票:剩余ticket=" + --ticket); // 这里--ticket表示卖了一张票后的余票
23                 }
24         }
25     }
26 }

程序运行结果:

卖票:剩余ticket=5
卖票:剩余ticket=4
卖票:剩余ticket=3
卖票:剩余ticket=2
卖票:剩余ticket=1
卖票:剩余ticket=5
卖票:剩余ticket=4
卖票:剩余ticket=3
卖票:剩余ticket=5
卖票:剩余ticket=4
卖票:剩余ticket=3
卖票:剩余ticket=2
卖票:剩余ticket=1
卖票:剩余ticket=2
卖票:剩余ticket=1
View Code

相关文章:

  • 2021-08-26
  • 2021-12-15
  • 2021-08-27
  • 2021-07-05
  • 2022-01-23
  • 2021-07-09
  • 2021-05-14
猜你喜欢
  • 2022-12-23
  • 2021-11-16
  • 2021-06-24
  • 2022-12-23
  • 2022-12-23
  • 2021-07-24
  • 2022-01-29
相关资源
相似解决方案