Java新建线程有两种方式,一种是通过继承Thread类,一种是实现Runnable接口,下面是新建线程的两种方式。

  我们假设有个竞赛,有一个选手A做俯卧撑,一个选手B做仰卧起坐。分别为两个线程:

playerA.java

  1. public class playerA extends Thread {
  2.  
  3. @Override
  4. public void run() {
  5. System.out.println("选手A出场了!");
  6. boolean flag=true;
  7. int count=0;
  8. while (flag) {
  9. System.out.println(getName()+"做了"+(++count)+"个俯卧撑");
  10. if (count==100) {
  11. flag=false;
  12. }
  13. if(count%10==0) {
  14. try {
  15. sleep(2000);//线程休息了2秒
  16. System.out.println(getName()+"的2秒休息完了");
  17. } catch (InterruptedException e) {
  18. // TODO Auto-generated catch block
  19. e.printStackTrace();
  20. }
  21. }
  22. }
  23. System.out.println(getName()+"做完了"+count+"个俯卧撑");
  24.  
  25. }
  26.  
  27. }

playerB.java

  1. public class playerB implements Runnable {
  2.  
  3. @Override
  4. public void run() {
  5. System.out.println("选手B出场了!");
  6. boolean flag=true;
  7. int count=0;
  8. while (flag) {
  9. System.out.println(Thread.currentThread().getName()+"做了"+(++count)+"个仰卧起坐");
  10. if (count==100) {
  11. flag=false;
  12. }
  13. if(count%10==0) {
  14. try {
  15. Thread.sleep(2000);//线程休息了2秒
  16. System.out.println(Thread.currentThread().getName()+"的2秒休息完了");
  17. } catch (InterruptedException e) {
  18. // TODO Auto-generated catch block
  19. e.printStackTrace();
  20. }
  21. }
  22. }
  23. System.out.println(Thread.currentThread().getName()+"做完了"+count+"个仰卧起坐");
  24.  
  25. }
  26.  
  27. }

competitionDrive.java

  1. public class competitionDrive {
  2.  
  3. public static void main(String[] args) {
  4. // TODO Auto-generated method stub
  5. System.out.println("比赛开始了");
  6.  
  7. //两种创建线程方式
  8. Thread A=new playerA();
  9. A.setName("选手A");
  10. A.start();
  11.  
  12. Thread B=new Thread(new playerB(),"选手B");
  13. B.start();
  14.  
  15. }
  16.  
  17. }

Java新建线程的两种方式的更多相关文章

  1. java创建线程的两种方式及源码解析

    创建线程的方式有很多种,下面我们就最基本的两种方式进行说明.主要先介绍使用方式,再从源码角度进行解析. 继承Thread类的方式 实现Runnable接口的方式 这两种方式是最基本的创建线程的方式,其 ...

  2. Java实现线程的两种方式?Thread类实现了Runnable接口吗?

    Thread类实现了Runnable接口吗? 我们看看源码中对与Thread类的部分声明 public class Thread implements Runnable { /* Make sure ...

  3. Java创建线程的两种方式

    方式 继承Thread类 实现Runnable方法 实例 #继承Thread类 public class ThreadTest2 extends Thread { private int thread ...

  4. java实现线程的两种方式

    要求:一个火车站,三个售票员卖出100张票 1.通过继承Thread类实现 实现思路:建立ThreadTest类继承Thread并建立三个线程卖100张票 public class ThreadTes ...

  5. 当阿里面试官问我:Java创建线程有几种方式?我就知道问题没那么简单

    这是最新的大厂面试系列,还原真实场景,提炼出知识点分享给大家. 点赞再看,养成习惯~ 微信搜索[武哥聊编程],关注这个 Java 菜鸟. 昨天有个小伙伴去阿里面试实习生岗位,面试官问他了一个老生常谈的 ...

  6. 【java并发】传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

  7. 1.java多线程_实现线程的两种方式

    1.java多线程基本知识 1.1.进程介绍 不管是我们开发的应用程序,还是我们运行的其他的应用程序,都需要先把程序安装在本地的硬盘上.然后找到这个程序的启动文件, 启动程序的时候,其实是电脑把当前的 ...

  8. Java并发基础01. 传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

  9. 创建线程的两种方式比较Thread VS Runnable

    1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 public class MyThread extends Thread{ @Override public vo ...

随机推荐

  1. Centos 7 GCC 7.3编译器安装方法及C++17标准测试示例

    1.下载gcc-7.3.0源码 http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-7.3.0/ 2.下载编译依赖 [root@localhost ~] ...

  2. Django 项目中设置缓存

    一.配置文件settings.py中 # 设置django缓存存放位置为redis数据库,并设置一个默认(default)选项,在redis中(配置文件/etc/redis/redis.conf)开启 ...

  3. js处理想要得到数据结构

    例1 var arr = [ { date: "2018-01-10", time: "11:00" }, { date: "2018-01-10&q ...

  4. 在centOS 7 中安装 MySQL

    知道来源:https://www.cnblogs.com/bigbrotherer/p/7241845.html 1 下载并安装MySQL官方的 Yum Repository [root@localh ...

  5. poj2479 Maximum sum

    http://poj.org/problem?id=2479 题目大意:给定一组n个整数:a ={a1, a2,…,我们定义一个函数d(a)如下: 你的任务是计算d(A).输入由T(<=30)测 ...

  6. elasticsearch 导入基础数据并索引之 geo_point

    elasticsearch 中的地理信息存储, 有geo_point形式和geo_shape两种形式 此篇只叙述geo_point, 地理位置需要声明为特殊的类型, 不显示在mapping中定义的话, ...

  7. 初始化css文件

    首先我们需要了解一下为什么需要公共样式(公共样式是为了初始化某些标签的默认值): 1. 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差 ...

  8. POJ 1157

    #include<iostream> //成大才子---经典代码~ #include<stdio.h> #include<algorithm> #define MA ...

  9. sqlserver监控阻塞(死锁)具体情况(转)

    公司sqlserver的监控系统主要是采用zabbix监控,但是zabbix的监控只能通过性能计数器给出报警,而无法给出具体的阻塞情况,比如阻塞会话.语句.时间等,所以需要配合sqlserver的一些 ...

  10. Lingo 做线性规划 - Operation Management Applications

    Reference: <An Introduction to Management Science Quantitative Approaches to Decision Making, Rev ...