zoukankan      html  css  js  c++  java
  • java线程学习1

    这两天终于稍微有点空了 看了下java的线程  实现不同线程主要有两个方法其一是 extends Thread类 其二是implements Runnable接口

    因为书上例子是不同的方法,我运用相同的方法比较了一下 更加清晰的了解到两者的区别

    例如:

    View Code
     1 class MyThread implements Runnable{
     2     private  int ticket = 5; 
     3     public void run() {
     4         for(int i=0 ; i<100;i++){
     5             if (ticket>0) {
     6                 System.out.println("卖票:ticket = "+ticket--);
     7             }
     8         }
     9     }
    10 }
    11 public class study1{
    12     public static void main(String[] args) {
    13             MyThread a2 = new MyThread();
    14             new Thread(a2).start();
    15             new Thread(a2).start();
    16             new Thread(a2).start();
    17         
    18     }
    19 }

    这个是继承runnable接口的  运行结果

    卖票:ticket=5
    卖票:ticket=3
    卖票:ticket=1
    卖票:ticket=4
    卖票:ticket=2

    但是如果继承Thread的话 用相同的方法也是一样的  结果是一样的 也是卖出5张票只是顺序不一样而已

    但是如果用继承implents Runnable的话  所实例化的类是没有start方法的。因此runnable只能够用一个实例化类去开启多个线程

    然而extends Thread类的话 则可以开启多个类的多线程 。一个实例化类开启的多个线程可以共享资源。多个类的则不行。

  • 相关阅读:
    Linux防火墙管理(iptables)以及开放端口配置
    CSS 样式引入方式、常用选择器以及优先级权重的计算
    初识外边距合并-margin collapsing
    纯CSS实现自适应正方形
    常用正则
    vue 学习记录
    VScode 之快速创建vue模板
    vscode之常用插件
    工具函数
    Axios之配置参数
  • 原文地址:https://www.cnblogs.com/guardianf/p/2875850.html
Copyright © 2011-2022 走看看