本文概述
Java多线程基础知识,如何创建一个线程
创建新的线程
Java语言设置了多线程支持。当Java程序启动的时候,实际上是启动了一个JVM进程,然后,JVM启动住线程来执行main()方法。在main()方法中国呢,可以启动其他线程。
创建:实例化一个Thread实例,然后调用star()方法:
1 2 3 4 5 6
| public class Main{ public static void main(String[] args){ Thread t = new Thread(); t.star(); } }
|
新线程能执行指定的代码
- 从Thread派生一个自定义类,然后覆盖run()方法
1 2 3 4 5 6 7 8 9 10 11 12
| public class Main { public static void main(String[] args) { Thread t = new MyThread(); t.start(); } } class MyThread extends Thread { @Override public void run() { System.out.println("start new thread!"); } }
|
- 创建Thread实例是,传入一个Runnable实例:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class Main { public static void main(String[] args) { Thread t = new Thread(new MyRunnable()); t.start(); } }
class MyRunnable implements Runnable { @Override public void run() { System.out.println("start new thread!"); } }
|
1 2 3 4 5 6 7 8
| public class Main { public static void main(String[] args) { Thread t = new Thread(() -> { System.out.println("start new thread!"); }); t.start(); } }
|
线程的优先级:
- 设定优先级:
Thread.setPriority(int n) // 1~10, 默认值5
优先级高的线程被操作系统调度的优先级较高,操作系统对高优先级线程可能调度更频繁,但我们决不能通过设置优先级来确保
小结:
- Java用Thread对象表示一个线程,通过调用start()启动一个新线程;
- 一个线程对象只能调用一次start()方法;
- 线程的执行代码写在run()方法中;
- 线程调度由操作系统决定,程序本身无法决定调度顺序;
- Thread.sleep()可以把当前线程暂停一段时间。