实现线程的两种方式
来源:互联网 发布:数据库范式举例 编辑:程序博客网 时间:2024/05/20 13:09
实现线程的两种方式:继承Thread类和实现Runnable接口。
两种方式差异:实现Runnable接口避免单继承的局限性。
继承方式案例:
package com.neutron.thread.demo;/** * 继承方式 * 1.继承Thread类 * 2.重写Thread的run方法,将自定义的方法存储在run方法中 * 3.调用线程的start方法,启动线程,调用run方法 * * 多个线程取得cpu的执行权,cpu执行到谁,谁就运行。多线程具有随机性,谁抢到就执行谁,执行时间不确定。 * Thread类用于描述线程,run方法用于存储线程要执行的代码。 * @author zhanght * */public class Ticket extends Thread {private static int ticket = 15;@Overridepublic void run() {while(true) {if (ticket > 0) {System.out.println(this.getName() + " " + ticket--);}}}public static void main(String[] args) {Ticket ticket = new Ticket();Ticket ticket2 = new Ticket();Ticket ticket3 = new Ticket();ticket.start();ticket2.start();ticket3.start();}/* * Thread-1 15 Thread-2 14 Thread-0 14 Thread-2 12 Thread-2 10 Thread-2 9 Thread-2 8 Thread-2 7 Thread-2 6 Thread-1 13 Thread-2 5 Thread-0 11 Thread-2 3 Thread-1 4 Thread-2 1 Thread-0 2 */}实现接口方式:
package com.neutron.thread.demo;/** * 1.定义类实现Runnable接口 * 2.重写Runnable接口中的run方法,将线程要运行的代码放在该run方法中。 * 3.通过Thread类建立线程对象 * 4.将实现Runnable接口的子类对象作为实际参数传递给Thread类的构造方法中。 * 要想线程执行指定对象的run方法,那么该对象必须实现Runnable接口 * 5.调用Thread类的start方法,开启线程并且调用实现Runnable接口对象的run方法。 * @author zhanght * */public class Tickets implements Runnable {private int ticket = 30;@Overridepublic void run() { while (true) { if (ticket > 0) { System.out.println(Thread.currentThread().getName() + " " + ticket--); } }}public static void main(String[] args) {Tickets t1 = new Tickets();new Thread(t1).start();new Thread(t1).start();new Thread(t1).start();}/* * Thread-0 30Thread-0 29Thread-0 28Thread-0 27Thread-0 26Thread-1 25Thread-1 23Thread-1 22Thread-1 21Thread-1 20Thread-1 19Thread-1 18Thread-1 17Thread-1 16Thread-1 15Thread-1 14Thread-1 13Thread-1 12Thread-1 11Thread-1 10Thread-1 9Thread-1 8Thread-1 7Thread-1 6Thread-1 5Thread-1 4Thread-1 3Thread-1 2Thread-1 1Thread-0 24 */}
0 0
- 线程-实现线程的两种方式
- 实现线程的两种方式
- 实现线程的两种方式
- 线程的两种不同实现方式
- 线程的两种实现方式
- 实现线程的两种方式
- java实现线程的两种方式
- Java实现线程的两种方式
- 实现线程的两种方式
- Java实现线程的两种方式
- java的两种线程实现方式
- 实现线程的两种方式
- 线程的两种实现方式。
- 实现线程的两种方式
- 2、线程实现的两种方式
- 线程实现两种方式
- 线程两种方式实现
- JAVA 实现线程的两种方式,举例,详解
- 二叉树的最大路径和 II--要求开始于根节点--则 先加上根节点,再递归左右子树。
- 欢迎使用CSDN-markdown编辑器
- Bundler及PMVS的配置与使用(简易版)
- 剑指Offer--034-丑数
- django框架从零开始_004_数据库_API
- 实现线程的两种方式
- net user
- c语言简易计算器
- 将属性文件以key-value值形式输出的工具类
- Problem B: 迭代法求平方根
- LeetCode|Top K Frequent Elements
- java为什么要使用接口回调
- DFS模板Oil Deposits
- JavaScript 不用eval制作简易计算器