6.0.线程

线程的初入了解:

进程:操作系统当中正在运行的应用程序。例如一个QQ程序,或者迅雷程序。
线程:是应用程序进程内部执行多个任务的执行单位。例如迅雷当中同时下载多个电影。
并行与并发:

你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。

一个胡同走到底
    你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。

来回切换用
    你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。

一心多用


JVM当中:栈内存是线程独立的,堆内存是线程共享的。
Java程序当中至少有两个线程:1. 主线程(main方法所在线程)2. 垃圾回收线程(gc线程)
Java的多线程采用抢占式调度:
    很多个线程彼此之间抢CPU资源,谁抢到了谁执行,谁没抢到下次再抢。
    对于并发的情况,无法真正去控制CPU到底执行哪个线程。穿插执行的顺序无法干预。

如何在Java程序当中使用多线程?java.lang.Thread类。
Thread类代表线程,一个Thread对象,就是一个线程。
备注:线程是一种极其宝贵的系统资源,建议谨慎节约使用。
 

 使用步骤:


1. 自定义一个类,然后继承Thread类。


2. 覆盖重写run方法,用来指定线程任务的内容。
public void run() {...}


3. 创建线程对象,并且调用start方法,启动线程,执行任务。
注意:不要自己调用run方法。

可以直接new一个线程对象运行方法:

下图就是直接调用run()方法的运行结果,无法看出这是多线程的效果。


可以通过下面的方法,获取当前线程的名称:
String name = Thread.currentThread().getName();
当前线程的名称默认使用“Thread-0”、“Thread-1”

 

猜你喜欢

转载自blog.csdn.net/qq_40406929/article/details/81489396
今日推荐