多线程的练习代码 01

Posted liyao0312

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程的练习代码 01相关的知识,希望对你有一定的参考价值。

多线程的练习代码 01

创建多线程的第一个方式 继承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<101;i++)
            System.out.println(Thread.currentThread().getName()+": "+i);
        
    


public class aduoxiancheng 
    public static void main(String[] args) 
        //3.创建继承Thread类的子类的实例
        myThread m1 = new myThread();
        myThread m2 = new myThread();
        //线程命名
        //myThread m1 = new myThread("线程1");
        //myThread m2 = new myThread();
        m2.setName("线程2");

        //4.调用对象的start()方法: ①启动线程  ②调用响应线程对应类的run()方法
        m1.start();  //再次 m1.start(); 就会返回非法的线程状态异常
        m2.start();
        //不可以直接用run()方法,并没有新开线程、

        for (int i=1;i<=100;i++)
            if(i%10==0)
                Thread.yield();  //yield(); 贡献出当前线程的执行权
            
            System.out.println(Thread.currentThread().getName()+": "+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();
    

以上是关于多线程的练习代码 01的主要内容,如果未能解决你的问题,请参考以下文章

多线程练习

Java 多线程练习

P364 实战练习(多线程)

多线程

linux套接字编程之多进程多线程练习

TCP通信程序练习6——多线程实现文件上传