package com.tianmushanlu.thread;
/**
* 创建步骤:
* 1. 自定义一个类实现Runnable接口。
* 2. 实现Runnable接口 的run方法,把自定义线程的任务定义在run方法上。
* 3. 创建Runnable实现类对象。
* 4. 创建Thread类 的对象,并且把Runnable实现类的对象作为实参传递。
* 5. 调用Thread对象 的start方法开启一个线程。
*
* 注意:
* Runnable实现类的对象并 不是一个线程对象,只不过是实现了Runnable接口的对象而已。
* 只有是Thread或者是Thread的子类才是线程对象。
*
*
*
*/
class TicketWindows implements Runnable{
Integer num = 50;
@Override
public void run() {
while(true) {
synchronized ("锁对象") {
if(num > 0) {
System.out.println(Thread.currentThread().getName()+"售出了第"+num+"票");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
num--;
}else{
System.out.println("票以售罄...........");
break;
}
}
}
}
}
public class ThreadDemo2 {
public static void main(String[] args) {
//创建了一个Runnable实现类的对象
TicketWindows TicketWindows = new TicketWindows();
Thread thread1 = new Thread(TicketWindows,"窗口1");
Thread thread2 = new Thread(TicketWindows,"窗口2");
Thread thread3 = new Thread(TicketWindows,"窗口3");
//开启3个线程售票
thread1.start();
thread2.start();
thread3.start();
}
}
分享到:
相关推荐
一个简单的多线程代码示例,Java实现,用于实现同一时刻,只允许一个线程调用执行的代码块或类,即synchronized的如何使用(多线程实现),实现 Runnable
实现Runnable接口:创建一个类实现java.lang.Runnable接口,实现run()方法,并将该实现类传递给Thread类的构造函数中。然后创建Thread实例并启动线程。 java class MyRunnable implements Runnable { public void r
Runnable 接口只有一个方法 run(),我们声明自己的类实现 Runnable 接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。但是 Runnable 接口并没有任何对线程的支持,我们还必须创建 Thread ...
专门针对线程的各种操作的详细讲解,看完希望能对你有所帮助!
public class Test implements Runnable{ private int x=0; private int y=0; boolean flag=true; public static void main(String[] args){ Test r=new Test(); Thread t1=new Thread(r); Thread t2=new Thread(r);...
public class fangyuan extends Applet implements Runnable { Thread left,right; Graphics mypen; int x,y,z,a,b,i; public void init() { left=new Thread(this); right=new Thread(this); x=10; y=10; mypen=...
* ============================实现Runnable的线程=============================== */ @SuppressWarnings("all") class OddNum implements Runnable { int i1; @Override public void run() { for (i1 = 1;...
This代表着小程序作为这个新的线程的目标对象,因此我们的小程序必须为这个新创建的线程实现Runnable接口,即小程序利用Runnable接口为其中创建的这个新线程提供run()方法,给出该线程的操作。 首先,在小程序的...
牟挚您箔廉耻戏屑戈莱呻拨岿骗垂磊且仗趣琳会坡越侵州靠靶靛掉照亏氨JAVA线程程序 设计(小时钟)实验报告(附完整代码)拖惫宦税今扎光订峻短莹签康藉呆堵誓热嚎嘿执庄 潜檬婉放驼惠赠咬柄菜酥获叉肖椭泥成牡汪追碎泉除...
java Swing窗体版多线程下载程序编写示例,多线程下载的实现, 将网络URL中指定的网络文件下载到本地文件中保存。 本代码中将完成新建任务构造器、配置文件构造器,保存下载信息,获取配置文件名,设置在前台显示...
详细介绍了java多线程技术以及runnable和implements的不同之处和各优缺点
Java线程:概念与原理 一、操作系统中线程和进程的概念 二、Java中的线程 三、例子 /** * 实现Runnable接口的类 * * @author leizhimin 2008-9-13 18:12:10 */ public class DoSomething implements Runnable...
这是一道面试题,创建多线程时,使用继承Thread类和实现Runnable接口有哪些区别呢? 一、Thread 先来看看Thread类和其中的start()方法 class Thread implements Runnable{.....} // 可见,Thread类实现了Runnable...
Runnable 接口 此接口只有一个函数,run(),此函数... class TimePrinter implements Runnable { int pauseTime; String name; public TimePrinter(int x, String n) { pauseTime = x; name = n; } public v
java笔试汇总 经典中的经典!绝对超值!还等什么 下载评分吧!!! 例如:1、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 public class ThreadTest1{ private int j; public ...
public class ThreadTest implements Runnable { private int tickets = 1000; public void run() { while(tickets >= 1) { sale(); } } public synchronized void sale() { if(tickets>0) { ...
public class RunnableImpl implements Runnable{ //定义一个多个线程共享的票源 private int ticket = 100; //设置线程任务:卖票 @Override public void run() { //使用死循环,让卖票操作重复执行 while...
public class Test extends Applet implements Runnable { int x = 150, y = 50, r = 30; //设置圆的属性 int dx = 11, dy = 7; // 圆的轨线设置 Thread animator; // 线程 volatile boolean pleaseStop; ...
public class Index extends JWindow implements Runnable{ //定义与进度条相关的组件 JProgressBar jpb;//定义进度条 JLabel jl1;//用于在窗体的北部放一张图片,南部是进度条 int width,height;//用于获取显示...