Java使用Thread和Runnable的线程实现方法比较

本文实例讲述了Java使用Thread和Runnable的线程实现方法。分享给大家供大家参考,具体如下:

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的灵寿网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

一 使用Thread实现多线程模拟铁路售票系统

1 代码

public class ThreadDemo
{
  public static void main( String[] args )
  {
    TestThread newTh = new TestThread( );
    // 一个线程对象只能启动一次
    newTh.start( );
    newTh.start( );
    newTh.start( );
    newTh.start( );
  }
}
class TestThread extends Thread
{
  private int tickets = 5;
  public void run( )
  {
    while( tickets > 0 )
    {
      System.out.println( Thread.currentThread().getName( ) + " 出售票 " + tickets );
      tickets -= 1;
    }
  }
}

2 运行

Thread-0 出售票 5
Thread-0 出售票 4
Thread-0 出售票 3
Thread-0 出售票 2
Thread-0 出售票 1
Exception in thread "main" java.lang.IllegalThreadStateException
    at java.lang.Thread.start(Thread.java:708)
    at ThreadDemo.main(ThreadDemo.java:16)

3 说明

一个线程只能启动一次

二 main方法中产生4个线程

1 代码

public class ThreadDemo
{
  public static void main(String[]args)
  {
    // 启动了四个线程,分别执行各自的操作
    new TestThread( ).start( );
    new TestThread( ).start( );
    new TestThread( ).start( );
    new TestThread( ).start( );
  }
}
class TestThread extends Thread
{
  private int tickets = 5;
  public void run( )
  {
    while (tickets > 0)
    {
      System.out.println(Thread.currentThread().getName() + " 出售票 " + tickets);
      tickets -= 1;
    }
  }
}

2 运行

Thread-0 出售票 5
Thread-0 出售票 4
Thread-0 出售票 3
Thread-0 出售票 2
Thread-0 出售票 1
Thread-1 出售票 5
Thread-1 出售票 4
Thread-1 出售票 3
Thread-1 出售票 2
Thread-1 出售票 1
Thread-2 出售票 5
Thread-2 出售票 4
Thread-2 出售票 3
Thread-2 出售票 2
Thread-2 出售票 1
Thread-3 出售票 5
Thread-3 出售票 4
Thread-3 出售票 3
Thread-3 出售票 2
Thread-3 出售票 1

三 使用Runnable接口实现多线程,并实现资源共享

1 代码

public class RunnableDemo
{
  public static void main( String[] args )
  {
    TestThread newTh = new TestThread( );
    // 启动了四个线程,并实现了资源共享的目的
    new Thread( newTh ).start( );
    new Thread( newTh ).start( );
    new Thread( newTh ).start( );
    new Thread( newTh ).start( );
  }
}
class TestThread implements Runnable
{
  private int tickets = 5;
  public void run( )
  {
    while( tickets > 0 )
    {
      System.out.println( Thread.currentThread().getName() + " 出售票 " + tickets );
      tickets -= 1;
    }
  }
}

2 运行

Thread-0 出售票 5
Thread-0 出售票 4
Thread-0 出售票 3
Thread-0 出售票 2
Thread-0 出售票 1

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


网站栏目:Java使用Thread和Runnable的线程实现方法比较
文章URL:http://bzwzjz.com/article/gicsjs.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站设计 成都网站建设推广 成都定制网站建设 成都网站设计 成都网站建设 成都网站建设公司 成都模版网站建设 外贸网站设计方案 网站设计 成都定制网站建设 成都商城网站建设 重庆企业网站建设 网站建设 网站设计制作报价 重庆外贸网站建设 网站建设公司 营销型网站建设 成都品牌网站设计 重庆网站建设 阿坝网站设计 温江网站设计 网站建设公司