Java基础整理(四)

2020-06-06  本文已影响0人  _笑口常开

理论基础

TLS

线程调用的两种方式

代码实践

方法一:继承 Thread

public class Actor extends Thread {  //继承自线程类
    public void run() {
        System.out.println(getName() + " 是一个演员\n"); //使用了线程类的getName方法获得当前线程的方法
        
        int count = 0; //记录线程运行多少次
        boolean keepRunning = true;
        
        while (keepRunning) {
            System.out.println(getName() + " 登台演出 " + (++count));
            
            if (count == 8){ //停止演出
                keepRunning = false;
            }
            if (count%2 == 0) { //中间加停顿
                try {
                    Thread.sleep(3000);
                    System.out.println("");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println(getName() + " 演出结束了");
    }
}

main函数中调用查看执行效果

public static void main(String[] args){
        Thread actor = new Actor();  
        actor.setName("Mr.Thread"); //线程里面有setName方法
        actor.start(); //线程开始工作
    }
/*
Mr.Thread 是一个演员

Mr.Thread 登台演出 1
Mr.Thread 登台演出 2

Mr.Thread 登台演出 3
Mr.Thread 登台演出 4

Mr.Thread 登台演出 5
Mr.Thread 登台演出 6

Mr.Thread 登台演出 7
Mr.Thread 登台演出 8

Mr.Thread 演出结束了
*/

方法二:实现Runnable接口

class Actress implements Runnable { //实现接口 而且是在同一个类中再写一个类
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + " 是一个演员\n"); 
        //runnable中没有getName方法,获取当前线程的name
        int count = 0;
        boolean keepRunning = true;
        
        while (keepRunning) {
            System.out.println(Thread.currentThread().getName() + " 登台演出 " + (++count));
            if (count == 8){
                keepRunning = false;
            }
            if (count%2 == 0) {
                try {
                    Thread.sleep(3000);
                    System.out.print("\n");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println(Thread.currentThread().getName() + " 演出结束了");
    }
}

main函数中调用查看执行效果

public static void main(String[] args){
        Thread actress = new Thread(new Actress(), "Ms.Runnable"); //setName方法合并了
        actress.start();
    }
/*
Ms.Runnable 是一个演员

Ms.Runnable 登台演出1
Ms.Runnable 登台演出2

Ms.Runnable 登台演出3
Ms.Runnable 登台演出4

Ms.Runnable 登台演出5
Ms.Runnable 登台演出6

Ms.Runnable 登台演出7
Ms.Runnable 登台演出8

Ms.Runnable 演出结束了
*/
上一篇下一篇

猜你喜欢

热点阅读