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()); } } }