多线程基础-实现多线程的两种方式(二)
实现多线程的两种方式:
1.实现Runnable
public interface Runnable {public abstract void run();
}// RunnableTest.java 源码
class MyThread implements Runnable{ private int ticket=10; public void run(){for(int i=0;i<20;i++){ if(this.ticket>0){System.out.println(Thread.currentThread().getName()+" 卖票:ticket"+this.ticket--);}}}
}; public class RunnableTest { public static void main(String[] args) { MyThread mt=new MyThread();// 启动3个线程t1,t2,t3(它们共用一个Runnable对象),这3个线程一共卖10张票!Thread t1=new Thread(mt);Thread t2=new Thread(mt);Thread t3=new Thread(mt);t1.start();t2.start();t3.start();}
}
2.继承Thread
public class Thread implements Runnable {}// ThreadTest.java 源码
class MyThread extends Thread{ private int ticket=10; public void run(){for(int i=0;i<20;i++){ if(this.ticket>0){System.out.println(this.getName()+" 卖票:ticket"+this.ticket--);}}}
};public class ThreadTest { public static void main(String[] args) { // 启动3个线程t1,t2,t3;每个线程各卖10张票!MyThread t1=new MyThread();MyThread t2=new MyThread();MyThread t3=new MyThread();t1.start();t2.start();t3.start();}
}
总结:Thread是一个类,而Runnable是一个接口,因此实现Runnable接口具有天然的扩展性优势,而且Thread有一个构造函数参数是Runnable接口的,可以共享资源。
多线程基础-实现多线程的两种方式(二)相关推荐
- SpringBoot中使用AMQ的两种方式二(Java配置、注解方式)
使用@JmsListener注解方式 1. 工程目录 2. 引入依赖 <?xml version="1.0" encoding="UTF-8"?> ...
- python 参数传递的两种方式二 名称传递
代码如下: def fact(n,m):s=1for i in range(1,n+1):s*=ireturn s//m a=fact(n=10,m=5) print(a) 运行结果:
- Java中实现多线程的两种方式之间的区别
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- java多线程区别_Java中实现多线程的两种方式之间的区别
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- Java实现多线程的两种方式讲解
1.两种方式 继承Thread和实现Runnable接口 a.Runnable 是一个接口,该接口中只包含了一个run()方法.我们可以定义一个类A实现Runnable接口:然后,通过ne ...
- python创建多线程_Python 多线程,threading模块,创建子线程的两种方式示例
本文实例讲述了Python 多线程,threading模块,创建子线程的两种方式.分享给大家供大家参考,具体如下: GIL(全局解释器锁)是C语言版本的Python解释器中专有的,GIL的存在让多线程 ...
- Qt实现多线程编程的两种方式
Qt实现多线程编程的两种方式 方式一: 继承自QThread类,覆写run函数.此实现方法只有run函数内的代码是运行在子线程内. 代码示例: #ifndef QDEMOTHREAD_H #defin ...
- python: 多线程实现的两种方式及让多条命令并发执行
一 概念介绍 Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法:另一种是创建一个threading. ...
- python 并发执行命令_python: 多线程实现的两种方式及让多条命令并发执行
一 概念介绍 Thread 是threading模块中最重要的类之一,可以使用它来创建线程.有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法:另一种是创建一个threading. ...
最新文章
- 电脑温度检测软件哪个好_一般电脑录音软件哪个好?
- 华为手机怎样复制加密门禁卡_手机NFC复制小区用的门禁卡
- 基于Swoole和Redis实现的并发队列处理系统
- 使用Aspose.Cells的基础知识整理
- java web 模型,从零构建轻量级Java Web框架
- C语言在二叉搜索树找到第k个最小元素(附完整源码)
- AT1350 深さ優先探索(洛谷 深度优先搜索+记忆化)
- shell oracle查询数组,shell 脚本 ---数组
- c# datetime._C#| DateTime.Month属性与示例
- java zip文件夹_如何使用java压缩文件夹成为zip包
- gsensor 车辆碰撞算法_AEB安全模型(一)——基于碰撞时间的安全模型
- 看生物信息学如何聚焦特定表型,探索分子机制,促进临床转化
- Python3 - 刷博客访问量脚本
- algorithm design manual: 8-19
- Spring MVC表单实例
- 利用kaggle训练模型
- 先搞定SLAM,再谈如何抓住下一代互联网产业爆发点!
- php ajax mysql视频教学视频_PHP入门教程之AJAX 与 MySQL
- 免费的文档翻译教程;免费将很长的文档英文翻译成中文
- 从单片机初学者迈向单片机工程师(对初学者非常有用)