- 浏览: 74649 次
- 性别:
- 来自: 深圳
文章分类
最新评论
class TWindow implements Runnable{ private int tickNum = 100; public void run(){ while(true){ if(tickNum >0){ System.out.println(Thread.currentThread().getName()" sale: "+ tickNum--); } } } } class Ticket{ public static void main(String[] args){ TWindow t = new TWindow();//这行代码未创建线程 Thread t1 = new thread();//创建一个线程 Thread t2 = new thread();//创建一个线程 Thread t3 = new thread();//创建一个线程 Thread t4 = new thread();//创建一个线程 t1.start(); t2.start(); t3.start(); t4.start(); } }
该代码运行后,没有结果。因为虽然四个线程已经开始运行,但是它们调用的是Thread类中的run(),而该run()并没有任何内容。
问题来了,TWindow中的run()方法为卖票动作,要如何调用它呢。
/* 需求:简单的买票程序 多个窗口卖票 创建线程的第二种方式:实现Runnable接口 步骤: 1,定义类实现Runnable接口 2,覆盖Runnable接口中的run方法 3,通过Thread类建立线程对象 4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数 为什么要将Runnable接口的子类对象作为实际参数传递给Thread的构造函数? 因为自定义run方法所属对象是Runnable接口的子类对象。 所以要让线程去执行指定对象的run方法,就必须明确该run方法所属对象。 5,调用Thread类的start方法,开启线程并调用Runnable接口子类的run方法 实现方式和继承方式有什么区别? 实现方式好处:避免了单继承的局限性 在定义线程时,建议使用实现方式。 继承Thread:线程代码存放在Thread子类run方法中 实现Runnable:线程代码存放在接口子类的run方法中 */ class TWindow implements Runnable{ private int tickNum = 100; public void run(){ while(true){ if(tickNum >0){ System.out.println(Thread.currentThread().getName()" sale: "+ tickNum--); } } } } class Ticket{ public static void main(String[] args){ TWindow t = new TWindow();//这行代码未创建线程 Thread t1 = new thread(t);//创建一个线程 Thread t2 = new thread(t);//创建一个线程 Thread t3 = new thread(t);//创建一个线程 Thread t4 = new thread(t);//创建一个线程 t1.start(); t2.start(); t3.start(); t4.start(); } }
发表评论
-
151多线程(优先级&yield方法)
2015-10-28 11:16 657/* 养成习惯:数据共享用静态 */ class Dem ... -
150_多线程(Join方法)
2015-10-27 18:31 567/* join: 当A线程执行到了B线程的join方法 ... -
114_面向对象(多异常处理)_黑马程序员_Java基础视频
2015-10-25 23:27 659/* 对多异常的处理 1.生命异常时,建议声明更为具体的异 ... -
113_面向对象(异常声明throws)_黑马程序员_Java基础视频
2015-10-25 23:26 447/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
112_面向对象(异常try-catch)
2015-10-25 23:25 701/* 异常:就是程序在运行时出现不正常情况 异常由来:问题 ... -
148_多线程(停止线程)
2015-10-25 23:16 547/* stop方法已经过时。 如何停止线程? 只有一 ... -
147_多线程(线程间通信-生产者消费者JDK5.0升级版)
2015-10-21 23:33 716/*JDK1.5及以上提供了多线程升级解决方案。 将同步Sy ... -
146_多线程(线程间通信-生产者消费者)
2015-10-20 23:35 596一个生产者一个消费者 ... -
144_多线程(线程间通信-等待唤醒机制)
2015-10-20 18:35 695class Res{ String name; Str ... -
142_多线程-线程间通信
2015-10-20 16:18 664/* 线程间通讯: 其实就是多线程在操作同一个资源。 但 ... -
141多线程-死锁
2015-10-20 14:45 651/* 死锁: 同步中嵌套同步 */ class T ... -
140_多线程(多线程-单例设计模式-懒汉式)
2015-10-19 11:45 636/* 单例设计模式 饿汉式 class Single ... -
138_多线程(多线程-同步函数的锁是this)
2015-10-15 14:48 811/* 同步函数用的是哪一个锁呢? 函数需要被对象调用。那么 ... -
137_多线程(多线程-同步函数)
2015-10-13 23:25 569/* 需求:银行有一个金库。 有两个储户分别存300元 ... -
135_多线程(多线程的安全问题)
2015-10-13 18:07 581class TWindow implements Runnab ... -
133_多线程(售票的例子)
2015-10-09 23:48 600/* 需求:简单的买票程序 多个窗口卖票 */ c ... -
132_多线程(获取线程对象以及名称)
2015-10-09 23:30 1183/* 练习:创建两个线程,和主线程交替运行 线程都有自 ... -
多线程-继承Thread类
2015-10-09 00:26 1526/* 进程:是一个正在执行中的程序 每一个进程执行都有一个 ... -
包的应用
2015-10-08 23:28 1635package pack; class PackageD ... -
异常总结
2015-10-05 20:07 545异常是什么? 是对问题的描述,将问题进行对象的封装。 ...
相关推荐
基于JAVA的多线程实现方法-实现Runnable接口 将需要实现多线程的类声明为实现Runnable接口的类,实现run()方法,并将线程体放在该方法里。
在学习Java过程中,自己收集了很多的Java的学习资料,分享给大家,有需要的欢迎下载,希望对大家有用,一起学习,一起进步。
在Java中只支持单继承,因此通过继承Thread类创建线程有一定的局限性,这时可以使用另一种方式,即实现Runnable接口来...接下来在案例中将通过实现Runnable接口方式创建线程,并实现多线程分别打印0~99的数字的功能。
Java多线程--创建多线程的基本方式二:实现Runnable接口
声明自定义线程类实现Runnable接口实现奇数/偶数序列线程并发执行。
1、Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。 2、多线程是并发执行的,交替占有cpu执行,请编写示例程序,并观察输出结果。 3、采用线程同步方法...
一个简单的多线程代码示例,Java实现,用于实现同一时刻,只允许一个线程调用执行的代码块或类,即synchronized的如何使用(多线程实现),实现 Runnable
1. 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。 学习线程之间的通信协调关系。 2. 使用 runnable 接口实现按两... 使用继承Thread类方式和实现Runnable接口两种方式实现。
本文首先介绍了线程的有关概念,接着介绍了线程的生命期及其状态间的转换,多线程的调度 原则,线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口
实现Runnable接口的类必须使用Thread类的实例才能创建线程,通过Runnable接口创建线程分为以下两步
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。.......................................JAVA线程、线程池资料----下载不扣分,回帖加1分,欢迎下载,童叟无欺JAVA线程、...
在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。在使用Runnable接口时需要建立一个Thread实例。因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例。
分别用Thread类和Runnable接口实现的阶乘的计算过程及结果的显示(本来一开始设置的不要积分,不知道为啥变得需要积分了,故此调整一下)
写一个多线程程序,实现以下的功能: 创建一个子线程,一次打印1到99的正整数; 创建另一个子线程,一次打印100到199的正整数; 两个线程交替打印。例如第一个线程打印1,接着第二个线程打印100,接着第一...
计算机后端-Java-Java核心基础-第20章 多线程 09. 同步方法处理实现Runnable的线程安全
Runnable 接口只有一个方法 run(),我们声明自己的类实现 Runnable 接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。但是 Runnable 接口并没有任何对线程的支持,我们还必须创建 Thread ...
Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start方法。 2.实现Runnable接口,并...
在这个项目中,开发者将学习如何利用Java的并发工具如Thread类和Runnable接口来创建和管理多个线程,同时确保在文件传输过程中的数据一致性和传输效率。此外,项目还涵盖了异常处理、网络IO操作、文件IO操作等核心...
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口(csdn)————程
java application multiThread clock,模拟时钟(AWT程序、Runnable接口),有时、分、秒针 编写一个应用程序,创建三个线程分别显示各自的时间。