多线程的介绍:
- 进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能
- 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。
- 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程
程序运行原理:
分时调度:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。
抢占式调度:优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),
Java使用的为抢占式调度。
实现多线程编程有两种方式:
- 自定义类,继承Thread类
MyThread th1 = new MyThread("线程一");
th1.start();
MyThread th2 = new MyThread("线程一");
th2start();
public class MyThread entends Threda{
private String name;
public MyThread (String name){
this.name = name //利用构造方法传递名
}
@Override
public void run(){
for(int i=1;i=100;i++){
System.out.println("线程"+name+"执行了第"+i+"次");
}
}
}
- 实现Runnable接口
MyRunnable th1 = new MyRunnable("线程一");
MyRunnable th2 = new MyRunnable("线程二");
th1.statr();
th2.start();
public class MyRunnable implements Runnable{
private String name;
public MyRunnable(String name){
this.name=name;
}
@Override
public void run(){
for(int i=1;i=100;i++){
System.out.println("线程"+name+"执行了第"+i+"次");
}
}
}