logo
关于我们

技术分享

技术分享 java多线程示例

java多线程示例

2021-04-28

/*

进程:一个正在运行的程序。每一个进程都有一个执行顺序,该顺序就是执行路径,或者叫执行单元
线程:就是进程中的一个执行单元。线程控制着进程。一个进程中至少有一个线程。

多线程示例。
创建多线程有两种方法。
一种继承Thread类,并且覆盖Thread中的run方法,并且调用其start方法。
startt方法的作用是开启线程,并且调用run方法。
复写run方法的目的是:将自定义的代码存储在run方法中,让线程运行。
*/

class Demo extends Thread{
    public void run(){
        for(int x =0; x <40;x++){
            System.out.println("Demo Run...."+x);    
        }    
    }    
}

class ThreadDemo{
    public static void main(String[]args){
        Demo d = new Demo();
        //等普通调用,因为run方法仅仅是将需要多线程执行的代码进行封装。
        d.run();
        //开启线程,并执行该线程的run方法。如果是d.run();则仅仅是允许run方法,并没有开启多线程。
        d.start();
       
        
        for(int i = 0;i<40;i++){
            System.out.println("helloWolrd----"+i);    
        }    //主线程,与start开启的线程并行执行。
    }
}

/*
创建线程的第二种方法,实现runnable接口
步骤:
1.实现Runnable接口
2.覆盖Runnabel中的run方法,将需要线程运行的代码存放在run方法中
3.通过Thread类建立线程对象
4.通过Runnable接口的子类对象作为参数,传递给Thread类的构造函数
    为什么要将Runnable接口的子类对象作为参数传递给Thread类。
    因为自定义的Run方法所属对象是Runnable接口的子类对象,所以要让线程去指定所属对象的Run方法,
    就必须明确run方法所属对象。
    
5.调用Thread类的start方法,开启线程,并调用Runnable接口的子类run方法

实现方式和继承方式区别。
实现方式的好处:避免了继承的局限性。
在定义线程时,一般使用实现方式
*/
class Ticket implements Runnable{
    private int ticket = 100;
    public void run(){
        while(true){
            if(ticket > 0){
                System.out.println(Thread.currentThread().getName()+"..slae " + ticket--);    
            }    
        }
    }
}

class TicketDemo{
    public static void main(String[]args){
        Ticket t = new Ticket();
        Thread t1 = new Thread(t);    
        Thread t2 = new Thread(t);    
        Thread t3 = new Thread(t);    
        t1.start();
        t2.start();
        t3.start();
    }    
}


云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 网络安全

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载