线程2

来源:互联网 发布:paragonntfs for mac 编辑:程序博客网 时间:2024/05/21 19:44

从上面对于线程有了一个基本的认识了,那么如何开启一个新的分支呢?

java实现多线程常用的有两种方式
继承Thread类、实现Runnable接口

实现线程的第一种方式:实现Runnable接口

public class TestThread1 {    public static void main(String args[]) {        Runner1 r = new Runner1();         Thread t = new Thread(r);        t.start();        for(int i=0; i<100; i++) {            System.out.println("Main Thread:------" + i);        }    }}class Runner1 implements Runnable {//Runner1是一个线程类    public void run() {        for(int i=0; i<100; i++) {              System.out.println("Runner1 :" + i);        }    }}

star开启一个新线程
start开启一个新的线程(通知cpu),会执行Runner1 中的run()
同时main()也会继续向下执行(这里不同于方法调用)
在cpu中显示的就是二者交替执行

二者交替执行

如果不启动一个新的线程,直接调用run()—-这里就是方法调用了!!就只有一个main分支了

实现线程的第二种方式:继承Thread类

public class TestThread1 {    public static void main(String args[]) {        Runner1 r = new Runner1();        r.start();         for(int i=0; i<100; i++) {            System.out.println("Main Thread:------" + i);        }    }}class Runner1 extends Thread {  //Runner1这里本来就是一个Thread类    public void run() {        for(int i=0; i<100; i++) {              System.out.println("Runner1 :" + i);        }    }}

执行的结果也是交替执行,见上图。

0 0
原创粉丝点击