Java在不同线程中运行代码详解编程语言

Java在不同线程中运行代码详解编程语言

start()方法开始为一个线程分配CPU时间,这导致对run()方法的调用。

 

代码1

package Threads; 
 
/** 
 * Created by Frank 
 */ 
public class ThreadsDemo1 extends Thread { 
    private String msg; 
    private int count; 
 
    public ThreadsDemo1(final String msg, int n) { 
        this.msg = msg; 
        count = n; 
        setName(msg + " runner Thread"); 
    } 
 
    public void run() { 
        while (count-- > 0) { 
            System.out.println(msg); 
            try { 
                Thread.sleep(100); 
            } catch (InterruptedException e) { 
                return; 
            } 
        } 
        System.out.println(msg + " all done."); 
    } 
 
    public static void main(String[] args) { 
        new ThreadsDemo1("Hello from X", 10).start(); 
        new ThreadsDemo1("Hello from Y", 15).start(); 
    } 
}

代码2:

package Threads; 
 
/** 
 * Created by Frank 
 */ 
public class ThreadsDemo2 implements Runnable { 
    private String msg; 
    private Thread t; 
    private int count; 
 
    public static void main(String[] args) { 
        new ThreadsDemo2("Hello from X", 10); 
        new ThreadsDemo2("Hello from Y", 15); 
    } 
 
    public ThreadsDemo2(String m, int n) { 
        this.msg = m; 
        count = n; 
        t = new Thread(this); 
        t.setName(msg + "runner Thread"); 
        t.start(); 
    } 
 
    @Override 
    public void run() { 
        while (count-- > 0) { 
            System.out.println(msg); 
            try { 
                Thread.sleep(100); 
            } catch (InterruptedException e) { 
                return; 
            } 
        } 
        System.out.println(msg + " all done."); 
    } 
}

代码3:

package Threads; 
 
/** 
 * Created by Frank 
 */ 
public class ThreadsDemo3 { 
    private int count; 
 
    public static void main(String[] args) { 
        new ThreadsDemo3("Hello from X", 10); 
        new ThreadsDemo3("Hello from Y", 15); 
    } 
    public ThreadsDemo3(final String msg, int n) { 
        this.count = n; 
        Thread t = new Thread(new Runnable() { 
            @Override 
            public void run() { 
                while (count-- > 0) { 
                    System.out.println(msg); 
                    try { 
                        Thread.sleep(100); 
                    } catch (InterruptedException e) { 
                        return; 
                    } 
                } 
                System.out.println(msg + " all done."); 
            } 
        }); 
        t.setName(msg + " runner Thread"); 
        t.start(); 
    } 
}

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/15858.html

(0)
上一篇 2021年7月19日 18:49
下一篇 2021年7月19日 18:49

相关推荐

发表回复

登录后才能评论