自学内容网 自学内容网

Java 0113学习总结

1.线程与进程

1.1什么是进程

正在执行的程序,称为进程。 进程是系统分配资源的单元,现在系统支持多进程的。

1.2什么是线程

线程,又称轻量级进程(Light Weight Process),是进程中的一条执行路径,也是CPU的基本调度单位。若一个程序可同一时间执行多个线程,就是支持多线程的.一个进程由一个或多个线程组成,彼此间完成不同的工作,同时执行,称为多线程。

注:①一个进程有多个或一个线程组成。比如: 360支持多线程的程序。

       ②进程与进程之间无法数据共享。

       ③线程与线程之间可以共享数据。

2.并发与并行

并行:指两个或多个事件在同一时刻发生(同时发生 同时处理 执行者不是一个)。

并发:指两个或多个事件在同一个时间段内发生【交替的发生 执行者是一个】。

电脑(单核)在执行任务时使用的是并发,因为电脑上只有一个CPU,但是电脑上却可以同时运行多个程序,这是一种假象,因为CPU的计算速度极快,10^-9每秒就会计算一次,而人能感觉到的时间流失是秒,所以电脑给我们一种感觉好像电脑上程序在同时执行。

3.为什么使用多线程

提高CPU的使用率,从而提高程序的效率。

4.java如何实现多线程任务

默认java程序为单线程,只有一个main的主线程。

java实现多线程的方式有三种:

第一种: 继承Thread类

第二种: 实现Runnable接口

第三种: 实现Callable接口

4.1继承Thread类完成多线程

Thread就是一个线程类,里面定义所有和线程相关的功能,只有是这个类才能开启的任务,才能被CPU单独去执行。

Java中线程执行的时候是采用的并发。学习的过程中不要纠结于多个线程执行的结果,因为是随机在执行,抢占式的在使用CPU资源。

继承Thread类后,不能再继承其他类,扩展性相对较差。

4.2实现Runnable接口

4.3实现Callable接口

4.4三种创建多线程的使用场景

1、继承Thread的方式:适合于这个任务只想被一个线程的对象执行的情况。

2、实现Runnable接口方式:适合于一个任务想被多个线程执行的情况. 卖票。

3、实现Callable接口方式:适合一个任务想被多个线程执行的情况,还想得倒任务的执行结果。

5.Thread类中常用的方法

5.1 start()方法

开启线程,且该方法只能调用一次。

5.2 run方法

线程开启后获取cpu时间片后执行的任务方法。

5.3 设置或获取线程名

默认的线程名称Thread-n.

设置线程名:setName("")

获取线程名:getName() (只能再Thread子类下使用)

                      Thread.currentThread.getName()(可用于任意地点)

5.4线程休眠

 Thread.sleep(1000);//单位毫秒 (需处理异常)

5.5放弃

当前线程主动放弃时间片,回到就绪状态,竞争下一次时间片

 Thread.yield(); //放弃CPU执行权 进入就绪队列参与cpu的竞争。

5.6加入

允许其他线程加入到当前线程中,直到其他线程执行完毕后,当前线程才会执行。

5.7守护线程

线程对象.setDaemon(true);设置为守护线程。 ​

线程有两类:用户线程(前台线程)和守护线程(后台线程) ​

如果程序中所有前台线程都执行完毕了,后台线程也会自动结束。 ​ 垃圾回收线程属于守护线程。


原文地址:https://blog.csdn.net/m0_64233297/article/details/145118851

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!