多线程
进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。我们没有打开之前它是一个应用,我们打开之后它在内存运行,在运行的程序,叫做进程。
线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程。
单线程程序:即,若有多个任务只能依次执行。
多线程程序:即,若有多个任务可以同时执行。
了解完之后我们了解一下程序运行的原理,分为两种分时调度和抢占式调度
1.分时调度
所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。
2.抢占式调度
优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度。
我们在主方法里进行一段代码 打印一到100 结束时候打印“完成”。我们可以发现是在打印1-100之后再打印完成,这就是一个典型的单线程模式。
我们想开多线程的话就需要用到一个thread类,new一个thread对象就多开一条线程,我们看一下thread的构造方法和里面所提供的的方法

可以定义一个线程的名字,start开始执行这条线程,run执行该线程里的方法。
创建线程主要步骤
1定义一个类继承thread类 2.重新run()方法 3 创建线程对象 4.调用start方法开启线程并执行
写出一个测试类代码如下

运行结果我们可以看到是抢占式调度,一段时间运行main 一段时间运行thread,多开一个线程就是多开了一个新栈区,然后cpu分别分配给两个方法时间去执行。新建的方法和通过getname获取线程名,主方法是静态的不能使用非静态的方法,所以我们thread对象调用currentthread方法获取当前线程对象,再调用getname获取该线程的名字。

浙公网安备 33010602011771号