package Object_Oriented;
/*
创建多线程的第一种方法:创建Thread类的子类
实现步骤:
1.创建Thread类子类
2.在这个子类中重写run()方法,设置线程任务(线程开启后做什么)
3.创建Thread类的子类的对象
4.调用start()方法,开启新的线程,执行run()方法 并不是直接调用run()方法!!!
public void start()使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
结果是两个线程并发地运行;当前线程(从调用返回给 start 方法)和另一个线程(执行其 run 方法)。
多次启动一个线程是非法的。特别是当线程已经结束执行后,不能再重新启动。
java程序属于抢占式调度,优先级高的先调度,同一个优先级随机选择一个执行
*/
public class Demo_Thread extends Thread{
@Override
public void run() {
System.out.println("run");
}
}
package Object_Oriented;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/*
sort()方法使用前提:待排序集合中的元素,必须实现Comparable接口,重写CompareTo方法指定排序规则
*/
/*
Comparable接口排序方法
this - 参数:升序
参数 - this: 降序
*/
/*
Comparable和Comparator的区别;
Comparable:this 与 传递的参数比较,要实现Comparable接口,重写CompareTo方法指定排序规则
Comparator:相当于找一个第三方的裁判来比较两个对象
*/
public class Test {
public static void main(String[] args) {
Demo_Thread demo_thread = new Demo_Thread();
demo_thread.start();
System.out.println("main");
//每次执行的方法不一定相同,都在抢占CPU资源
}
}