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)!