您的位置:1010cc时时彩经典版 > 1010cc时时彩经典版 > 1010cc时时彩经典版:线程之线程的开发方法,实

1010cc时时彩经典版:线程之线程的开发方法,实

发布时间:2019-08-10 21:41编辑:1010cc时时彩经典版浏览(50)

    java 宗旨编制程序——线程之线程的开垦方法(二),java开荒方法

    1.继承Thread类

      Thread类是三个切实的类,不是抽象类。

    package se.thread;
    
    import java.util.Date;
    
    public class ThreadTest extends  Thread {
    
        public int time;
        public String name;
    
        ThreadTest(int time,String name){
    
            this.name=name;
            this.time=time;
        }
    
        public void run(){
    
            while(true){
                try {
                    System.out.println("用户" this.name "正在休息,时间:" new Date());
                    Thread.sleep(this.time);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
    
        }
    
    
        public static void main(String[] args) {
    
            ThreadTest threadTest1 = new ThreadTest(100,"jack");
            threadTest1.start();
    
            ThreadTest threadTest2 = new ThreadTest(200,"lolo");
            threadTest2.start();
    
    
        }
    
    }
    

    2.实现Runable接口

    package se.thread;
    
    import java.util.Date;
    
    public class TreadTest2 implements Runnable {
    
    
        public int time;
        public String name;
    
        public TreadTest2(int time,String name){
    
            this.name=name;
            this.time=time;
        }
    
    
    
        @Override
        public void run() {
            while(true){
                try {
                    System.out.println("用户" this.name "正在休息,时间:" new Date());
                    Thread.sleep(this.time);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) {
    
            TreadTest2 threadTest2 = new TreadTest2(3000,"004");
            TreadTest2 treadTest22 = new TreadTest2(2000,"125");
            new Thread(threadTest2).start();
            new Thread(treadTest22).start();
    
        }
    }
    

    3.选择Thread类还是Runable接口?

      1.如若只是想重写Runable接口并不是重写Thread其余方法,则使用Runable接口。

      2.若是子类承袭了别的非Thread类,则只好通过落实Runable接口来落实run()的重写。

    核心编制程序——线程之线程的开辟方法(二),java开荒方法 1.承接Thread类 Thread类是三个切实的类,不是抽象类。 package se.thread; import ja...

    第一种:成立三个类承继Thread类,重写Thread类的run方法,代码如下:

    1.继承Thread类

    1.继承Thread类

    线程的两种情状: 新建, 运行, 就绪,阻塞,归西

    class Thread1 extends Thread {    @Override    public void run() {        while (true) {            try {                Thread.sleep(1000);// 线程睡眠1s            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            System.out.println(Thread.currentThread().getName;// 打印当前线程名称        }    }}public class Test {    public static void main(String[] args) {        Thread1 thread1 = new Thread1();        thread1.start();//启动线程    }}
    

      Thread类是一个具体的类,不是抽象类。

      Thread类是一个现实的类,不是抽象类。

    1010cc时时彩经典版:线程之线程的开发方法,实现多线程的两种传统方式。线程运维流程图

    第两种方法:创立三个类达成Runable接口,重写Runable接口的run方法,并将此类的目的作为参数字传送递给Thread类的有参构造方法,代码如下:

    package se.thread;
    
    import java.util.Date;
    
    public class ThreadTest extends  Thread {
    
        public int time;
        public String name;
    
        ThreadTest(int time,String name){
    
            this.name=name;
            this.time=time;
        }
    
        public void run(){
    
            while(true){
                try {
                    System.out.println("用户" this.name "正在休息,时间:" new Date());
                    Thread.sleep(this.time);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
    
        }
    
    
        public static void main(String[] args) {
    
            ThreadTest threadTest1 = new ThreadTest(100,"jack");
            threadTest1.start();
    
            ThreadTest threadTest2 = new ThreadTest(200,"lolo");
            threadTest2.start();
    
    
        }
    
    }
    
    package se.thread;
    
    import java.util.Date;
    
    public class ThreadTest extends  Thread {
    
        public int time;
        public String name;
    
        ThreadTest(int time,String name){
    
            this.name=name;
            this.time=time;
        }
    
        public void run(){
    
            while(true){
                try {
                    System.out.println("用户" this.name "正在休息,时间:" new Date());
                    Thread.sleep(this.time);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
    
        }
    
    
        public static void main(String[] args) {
    
            ThreadTest threadTest1 = new ThreadTest(100,"jack");
            threadTest1.start();
    
            ThreadTest threadTest2 = new ThreadTest(200,"lolo");
            threadTest2.start();
    
    
        }
    
    }
    

     

    class Thread2 implements Runnable{    @Override    public void run() {        while (true) {            try {                Thread.sleep(1000);// 线程睡眠1s            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            System.out.println(Thread.currentThread().getName;// 打印当前线程名称            }}}public class Test {    public static void main(String[] args) {        Thread thread = new Thread(new Thread2;        thread.start();//启动线程    }}
    

    2.实现Runable接口

    2.实现Runable接口

    java中要使用线程有三种办法:

    三种方法的差别:假如三个类承接Thread,则不相符能源分享。可是一旦完成了Runable接口的话,则很轻松的落实能源分享。

    package se.thread;
    
    import java.util.Date;
    
    public class TreadTest2 implements Runnable {
    
    
        public int time;
        public String name;
    
        public TreadTest2(int time,String name){
    
            this.name=name;
            this.time=time;
        }
    
    
    
        @Override
        public void run() {
            while(true){
                try {
                    System.out.println("用户" this.name "正在休息,时间:" new Date());
                    Thread.sleep(this.time);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) {
    
            TreadTest2 threadTest2 = new TreadTest2(3000,"004");
            TreadTest2 treadTest22 = new TreadTest2(2000,"125");
            new Thread(threadTest2).start();
            new Thread(treadTest22).start();
    
        }
    }
    
    package se.thread;
    
    import java.util.Date;
    
    public class TreadTest2 implements Runnable {
    
    
        public int time;
        public String name;
    
        public TreadTest2(int time,String name){
    
            this.name=name;
            this.time=time;
        }
    
    
    
        @Override
        public void run() {
            while(true){
                try {
                    System.out.println("用户" this.name "正在休息,时间:" new Date());
                    Thread.sleep(this.time);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) {
    
            TreadTest2 threadTest2 = new TreadTest2(3000,"004");
            TreadTest2 treadTest22 = new TreadTest2(2000,"125");
            new Thread(threadTest2).start();
            new Thread(treadTest22).start();
    
        }
    }
    
    1. 后续Thread 类 一碗水端平写run函数 。通过start()函数运转

    2. 达成Runable接口,同仁一视写run函数。 通过创制new 一个Thread 然再start来运转

    落实Runnable接口比持续Thread类所兼有的优势:

    3.选择Thread类还是Runable接口?

    3.选择Thread类还是Runable接口?

     

    1):适合五个一律的程序代码的线程去管理同三个财富

      1.要是只是想重写Runable接口并不是重写Thread其余办法,则运用Runable接口。

      1.只要只是想重写Runable接口而不是重写Thread其余方法,则应用Runable接口。

    五个简易的java 线程例子 分别通过接二连三Thread 类 和 落成Runnable 接口的run 函数来完成线程:

    2):能够免止java中的单承接的范围

      2.倘诺子类承袭了别样非Thread类,则不得不通超过实际现Runable接口来贯彻run()的重写。

      2.只要子类承接了别的非Thread类,则不得不通过落实Runable接口来兑现run()的重写。

    package Threading;

    3):扩大程序的健壮性,代码能够被八个线程分享,代码和数量独立

     

    注意:main方法其实也是多个线程。在java中颇具的线程都是同期开动的,至于曾几何时,哪个先推行,完全看哪个人先拿走CPU的财富。

    /** java 多线程

    在java中,每回程序运维至少运维2个线程。三个是main线程,三个是污源搜聚线程。因为每当使用java命令实施四个类的时候,实际上都会运转二个jvm,每三个jvm实际上便是在操作系统中运营了四个进度。

    * java中要利用线程有三种方法:

    * 1. 继承Thread 类 并重写run函数

    * 2. 实现Runable接口,并重写run函数

    本文由1010cc时时彩经典版发布于1010cc时时彩经典版,转载请注明出处:1010cc时时彩经典版:线程之线程的开发方法,实

    关键词:

上一篇:ssm拦截原理

下一篇:没有了