zoukankan      html  css  js  c++  java
  • java多线程的使用

    实现Java多线程的两种方式:

      一:是实现runnable接口

     1 class ThreadTest implements Runnable{
     2   private int tickets = 100;
     3   public void run(){
     4      while(true){
     5      if(tickets > 0){
     6        System.out.println(Thread.currentThread().getName() +
     7           " is saling ticket " + tickets--);
     8       }
     9     }
    10   }
    11 }
    1 public class ThreadDemo1{
    2   public static void main(String[] args){
    3    ThreadTest t = new ThreadTest();
    4      new Thread(t).start();
    5      new Thread(t).start();
    6      new Thread(t).start();
    7      new Thread(t).start();
    8   }
    9 }

      四个线程同时执行同一资源

      二:是继承Thread,重写run方法

     1 class ThreadTest extends Thread{
     2   private int ticket = 100;
     3   public void run(){
     4       while(true){
     5       if(ticket > 0){
     6       System.out.println(Thread.currentThread().getName() +
     7           " is saling ticket" + ticket--);
     8       }else{
     9          break;
    10       }
    11     }
    12   }
    13 }
    1 public class ThreadDemo1{
    2   public static void main(String[] args){
    3     new ThreadTest().start();
    4     new ThreadTest().start();
    5     new ThreadTest().start();
    6     new ThreadTest().start();
    7  }
    8 }

    四个线程分别执行同一资源,每个都执行100次。

    两种实现的区别是:

    可见,实现Runnable接口相对于继承Thread类来说,有如下显著的好处:

    (1)适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码,数据有效的分离,较好地体现了面向对象的设计思想。

    (2)可以避免由于Java的单继承特性带来的局限。我们经常碰到这样一种情况,即当我们要将已经继承了某一个类的子类放入多线程中,由于一个类不能同时有两个父类,所以不能用继承Thread类的方式,那么,这个类就只能采用实现Runnable接口的方式了。

    (3)有利于程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。当多个线程的执行代码来自同一个类的实例时,即称它们共享相同的代码。 多个线程操作相同的数据,与它们的代码无关。当共享访问相同的对象是,即它们共享相同的数据。当线程被构造时,需要的代码和数据通过一个对象作为构造函数 实参传递进去,这个对象就是一个实现了Runnable接口的类的实例

    开启打怪升级之旅
  • 相关阅读:
    机器学习--避免过度拟合 笔记
    《机器学习》第三章 决策树学习 笔记加总结
    《机器学习》第二章 概念学习和一般到特殊序
    《机器学习》第一章 引言 笔记加总结
    jmeter+ant生成html报告
    jmeter之beanshell使用
    html常用标签
    css样式
    fiddler设置重定向
    fiddler设置断点
  • 原文地址:https://www.cnblogs.com/zhangliwei/p/9151360.html
Copyright © 2011-2022 走看看