多线程的练习代码 01
2020-12-13 16:36
标签:void 子类 sys 实现 ble 形参 cpu imp 多线程 多线程的练习代码 01 多线程的练习代码 01 标签:void 子类 sys 实现 ble 形参 cpu imp 多线程 原文地址:https://www.cnblogs.com/liyao0312/p/11620854.html创建多线程的第一个方式 继承Thread类
/*
Thread:
1.创建多线程的第一个方式
2.Thread类你的常用的方法:
2.1 getName();
2.2 setName();
2.3 start():开启一个线程并调用响应的run()执行
2.4 run();
2.5 yield(); “贡献”出当前线程对cpu的获取
2.6 join(); 在a线程中调用b线程的join()方法,那么当b线程完全执行完以后,a线程才可能开始执行
*/
//1. 声明类继承Thread类
class myThread extends Thread{
//2.重写run()方法,这是创建的多线程的执行的主体
public void run(){
for(int i=1;i
/**
* 三个窗口一起卖100张票
*/
class Ticket extends Thread{
static int ticket =100;
public void run(){
while(true){
if(ticket>0){
System.out.println(Thread.currentThread().getName()+"售票,票号位:" + ticket--);
}
}
}
}
public class TestTicket {
public static void main(String[] args) {
Ticket t1 = new Ticket();
Ticket t2= new Ticket();
Ticket t3 = new Ticket();
t1.setName("t1窗口");
t2.setName("t1窗口");
t3.setName("t1窗口");
t1.start();
t2.start();
t3.start();
}
}
创建多线程的第二种方式:实现Runnalble接口
/**
* 开启三个窗口买票
*
* 创建多线程的第二种方式:实现Runnalble接口
*/
//1. 创建实现Runnable接口的类
class Ticket1 implements Runnable{
int ticket =100;
//2. 重写Runnable接口中的抽象方法
public void run(){
while(true){
if(ticket>0){
System.out.println(Thread.currentThread().getName() + "售票,票号位:" + ticket--);
}
}
}
}
public class TestTicket1 {
public static void main(String[] args) {
//3. 创建一个实现接口的子类对象
Ticket1 t = new Ticket1();
//4. 将创建的子类对象作为形参传递给Thread类的构造器
Thread t1 = new Thread(t);
Thread t2 = new Thread(t);
Thread t3 = new Thread(t);
t1.setName("t1窗口");
t2.setName("t2窗口");
t3.setName("t3窗口");
t1.start();
t2.start();
t3.start();
}
}
上一篇:JSOI2007建筑抢修