多线程练习——创建方式1

public class ThreadTicket {
//开启四个窗口售票
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Tickets().start();
		new Tickets().start();
		new Tickets().start();
		new Tickets().start();
	}

}
class Tickets extends Thread{
	int total = 100;
	public void run(){
		while (total!=0) {
			System.out.println(this.getName()+",出售票:"+(total--));
		}

	}
}

没个线程 都拥有自己的run()方法 导致无法共享资源 出现票多了四倍

时间: 2024-10-06 00:03:21

多线程练习——创建方式1的相关文章

JAVA学习第二十三课(多线程(二))- (多线程的创建方式二 :实现Runnable接口(常用))

当一个类有父亲,但是其中的功能还希望实现线程,那么就不能采用继承Thread的方式创建线程 那么就可以通过接口的方式完成 准备扩展Demo类的功能,让其中的内容可以作为线程的任务执行 实现Runnable接口,Runnable接口中只有一个方法run 一.创建线程的第二种方法 Runnable的出现仅仅是将线程的任务进行了对象的封装 /* * 创建线程的第二种方法 * 1.定义类实现Runnable接口 * 2.覆盖接口中的fun方法,将线程的任务代码封装到run方法中 * 3.通过Thread

多线程的创建方式

一:进程与线程     进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程.(进程是资源分配的最小单位) 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小.(线程是cpu调度的最小单位) 线程和进程一样分为五个阶段:创建.就绪.运行.阻塞.终止. 多进程是指操作系统能同时运行多个任务(程序). 多线程是指在同一程序中有多个顺序流在执行. 2:实现多线程有三种方法:一种是继续Thread类,另外

JAVA学习第二十二课(多线程(二))- (多线程的创建方式一 :继承Thread类)

线程是程序中的执行线程.Java 虚拟机允许应用程序并发地运行多个执行线程. 创建新执行线程有两种方法. 一种方法是将类声明为 Thread 的子类.该子类应重写Thread 类的run 方法.另一种方法是声明实现 Runnable 接口的类.该类然后实现run 方法. 创建线程方式一:继承Thread类 一.创建线程的步骤: 1.定义一个类继承Thread类 2.覆盖Thread中的run()方法 3.直接创建Thread类子类的对象 4.调用start方法开启线程,并调用线程的任务run方法

java多线程的创建方式

根据Thread类中的run方法 public void run() { if (this.target == null) return; this.target.run(); } 可以知道运行多线程代码有两种方式,一种是运行Thread类run方法中的代码,一种是运行target中的run代码. 方法一:运行Thread类run方法中的代码 Thread thread1=new Thread(){ @Override public void run() { while(true){ try {

多线程的创建方式---继承Thread和实现Runnable

继承Thread类创建多线程 1 package cn.ftf.thread; 2 /** 3 * 多线程实现方式一 继承Thread实现多线程,继承Thread,重写run方法 4 * @author 房廷飞 5 * 6 */ 7 public class StartThread extends Thread{ //对象继承Thread 8 public static void main(String[] args) { 9 StartThread st=new StartThread();

多线程练习——创建方式2

//开启四个窗口售票 public class RunnableTiccket { public static void main(String[] args) { Tickets2 ticket = new Tickets2(); new Thread(ticket).start(); new Thread(ticket).start(); new Thread(ticket).start(); new Thread(ticket).start(); } } class Tickets2 im

Java中多线程的学习和使用(一)概述及创建方式

转载请注明http://www.cnblogs.com/devtrees/p/4395477.html 多线程的学习 一.多线程概述 (一).进程与线程 在说多线程或者线程之前,让我们来了解一下更显而易见的进程概念.那什么是进程呢? 进程就是正在进行中的程序. Windows操作系统中在任务栏处右击,弹出的菜单中可看见任务管理器,打开它,就可以看见当前运行的程序和进程列表. 进程:是一个正在执行中的程序. 每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 线程:就是进程

iOS多线程的几种创建方式

1.NSThread 2.NSOperationQueue 3.GCD NSThread: 创建方式主要有两种: [NSThread detachNewThreadSelector:@selector(myThreadMainMethod:) toTarget:self withObject:nil]; 和 NSThread *myThread = [[NSThread alloc] initWithTarget:self selector:@selector(myThreadMainMetho

多线程<一>创建的五中方式

一,多线程创建方式一继承Thread类创建线程 Thread类本质上是实现了Runnable接口的一个实例,代表一个线程的实例.启动线程的唯一方法就是通过Thread类的start()实例方法.start()方法是一个native方法,它将启动一个新线程,并执行run()方法.这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法.例如: 1 public class MyThread extends Threa