Java多线程编程核心技术---多线程技能

1、继承Thread

/**
 * Copyright (C), 2018-2018,
 * FileName: MyThread
 * Author:   大象
 * Date:     2018-06-08 22:30
 */
package com.daxiang.demo.thread;

/**
 * 〈〉<br> 
 *
 * @author daxiang
 * @create 2018-06-08
 * @since 1.0.0
 */
public class MyThread extends Thread{
    @Override
    public void run() {
        super.run();
        System.out.println("this is thread");
    }

    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        myThread.start();
        System.out.println("线程结束");
    }
}

2、实现Runnable接口

由于java规定只能单继承,所以为了满足多线程要求可以继承Runnable接口

/**
 * Copyright (C), 2018-2018,
 * FileName: MyThreadByRunnable
 * Author:   大象
 * Date:     2018-06-08 22:33
 */
package com.daxiang.demo.thread;

/**
 * 〈〉<br> 
 *
 * @author daxiang
 * @create 2018-06-08
 * @since 1.0.0
 */
public class MyThreadByRunnable implements Runnable{

    @Override
    public void run() {
        System.out.println("线程运行中");
    }

    public static void main(String[] args) {
        MyThreadByRunnable myThreadByRunnable = new MyThreadByRunnable();
        Thread thread = new Thread(myThreadByRunnable,"线程1");
        thread.start();
        System.out.println("运行结束");
    }
}

3、线程运行的随机性

/**
 * Copyright (C), 2018-2018,
 * FileName: MyThreadByRandom
 * Author:   大象
 * Date:     2018-06-09 7:00
 */
package com.daxiang.demo.thread;

/**
 * 〈〉<br>
 *
 * @author daxiang
 * @create 2018-06-09
 * @since 1.0.0
 */
public class MyThreadByRandom extends Thread {

    @Override
    public void run() {
        System.out.println("run thread:" + Thread.currentThread().getName());
        for (int j = 0; j < 10; j++) {
            int time = (int) Math.random() * 1000;
            try {
                Thread.sleep(time);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("run:" + Thread.currentThread().getName());
        }

    }

    public static void main(String[] args) {
        MyThreadByRandom thread = new MyThreadByRandom();
        thread.setName("线程");
        thread.start();
        for (int i = 0; i < 10; i++) {
            int time = (int) Math.random() * 1000;
            try {
                Thread.sleep(time);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("run:" + Thread.currentThread().getName());
        }
    }

}

  

posted @ 2018-06-09 07:46  大象老师  阅读(138)  评论(0编辑  收藏  举报