本文已参与「新人创作礼」活动,一起开启掘金创作之路。
什么是线程
首先我们要分清线程,进程,和程序的区别。程序指的是我们代码写成的一个软件或是一个网站,而进程就是我们正在运行的程序。在一个程序中,肯定不止一个功能,而且也不是每次只能运行一个功能,当不同的功能同时运行时,就是不同的线程在同时运行。
单线程与多线程。
我们之前的编程过程中,都是通过main方法进行逻辑书写或者是通过调用不同的方法进行功能的实现,单执行的顺序都是按照从上到下的顺序进行执行的。就好像在一个单排道上开车,我们只能按照先后的顺序依次到目的地。
而多线程相当于拓宽了我们的马路,从一排道拓宽到了两排道甚至四排道,这样我们就不一定是按照依次顺序到达终点了。java中的线程也是实现了类似的效果,会有多个不同的功能或线程进行cpu的抢占,谁先抢到谁就可以先进行功能实现,这个时候代码的执行顺序就不一定是按照从上到下的顺序来进行的了。线程的执行就变得充满了随机性。在理论上一个cpu只能同时执行一个线程。我们现在电脑的多线程,是通过多cpu来进行实现的。
线程中的常用方法
.sleep()对线程进行睡眠(暂停),参数为睡眠的时间,时间单位为毫秒(1000毫秒为1秒)。
.star()开启线程
.stop()关闭线程
.setPriority()对线程进行优先级赋值
.getPriority() 获取线程优先级
.currentThread()获取当前线程
.setname()对线程进行命名,若不进行命名,会有默认命名
.getname()获取线程名称