摘要:本文主要向大家介绍了JAVA语言有哪两种创建线程的方式,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
本文主要向大家介绍了JAVA语言有哪两种创建线程的方式,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
/* 四个窗口同时卖票 因为是同时,所以使用多线程 创建4个线程,都是卖票 因为都是卖票,说明四个线程的任务是一样的 只需要定义一个类继承Thread */ // 以下是用第一种创建线程的方法(具体方法在我的上一篇博客中有介绍),但是并不符合要求 // 线程和线程任务是绑定在一起的 /*class Ticket extends Thread{ // 把num设置成静态的实现各个线程共享同一个num // 但是万一情况复杂,不可能把所有的成员变量都设置成静态的 // 所以,这种创建线程的方法用在这里并不合适 private static int num = 50; public void run(){ //死循环,会一直进行下去 while(true){ if(num>0){ System.out.println(Thread.currentThread().getName()+"...sale..."+num--); } } } } class test{ public static void main(String[] args){ // 当num等其他成员变量不是静态的时候,每一个线程初始的情况都是一样的,并不符合实际要求 // 但是又不能把所有的成员变量都定义成静态的,所以就有了第二种创建线程的方式 Ticket t1 = new Ticket(); Ticket t2 = new Ticket(); Ticket t3 = new Ticket(); Ticket t4 = new Ticket(); t1.start(); t2.start(); t3.start(); t4.start(); } } */ /* 为了解决四个线程共享票的问题,使用静态方法肯定是不行的 需要使用创建线程的第二种方式: 1、创建实现了Runnable接口的子类 2、重写Runnable接口中的run方法 3、创建实现了Runnable接口的子类的对象 4、创建Thread类的对象,也就是在创建线程 5、把实现了Runnable接口的子类对象作为参数传递给Thread类的构造方法 把线程任务进行了描述,也就是面向对象 线程任务和线程对象的分离,线程执行什么任务不再重要,只要是实现了Runnable接口的子类对象 都可以作为参数传递给Thread的构造方法 实现接口的同时,也可以继承父类 */ //下面用第二种方法创建线程,解决上述问题 //1、创建实现了Runnable接口的子类,这是一个描述线程任务的类 class Ticket implements Runnable{ public int num = 50; //2、重写Runnable接口中的run方法 public void run(){ while(true){ if(num>0){ System.out.println(Thread.currentThread().getName()+"...sale..."+num--); } } } } class test{ //3、创建实现了Runnable接口的子类的对象 public static void main(String[] args){ Ticket t = new Ticket(); //4、创建Thread类的对象,也就是在创建线程 //5、把实现了Runnable接口的子类对象作为参数传递给Thread类的构造方法 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(); } }
以上就是职坐标整理发布关于JAVA的介绍,先祝大家对它有了一定的了解吧,了解更多内容,请关注职坐标编程语言JAVA频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号