浅谈多线程
Posted lxd-ld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈多线程相关的知识,希望对你有一定的参考价值。
做一个java职场新人,我觉得学习新技术固然是重要的,但是最重要的应该是回顾所学,巩固基础,因为一切代码的根源和底层最终都是通过基础代码来实现的。所以我觉得打好基础对于后续的学习相对来说才是更加的重要。
还是一样首先从学习三步曲来开始:
1、什么是多线程?
既然要探讨什么是多线程,那么我们从字面上来理解这个词,多线程翻译过来也就是多个线程。讲到这里就需要了解到线程。这时就有存在疑问,什么是线程?
a)什么是线程?
答:线程我们可以理解为进程中一个独立运行的子任务。例如:百度云软件在运行时就有很多的子任务在运行,如同时可以上传多个东西,例如上传音乐,上传视频等,其中每一项任务就都可以理解成线程在运行。
b)什么是进程?
答:进程是系统进行资源分配和调度的一个独立单元。
2、为什么用多线程?
a)提高CPU的利用率,我们应该都知道,程序从请求到响应的整个过程都是由CPU来完成的。在不采用多线程的情况下,程序进程将以同步的方式去完成所有的事情,这样的缺点就需要按照顺序,完成一个后再继续下一个事情,这样可能就占用CPU很少的使用率,那还有一大部分就相当于白白浪费资源,这个时候我们如果让多个事情同时进行,也就是所谓的异步,那么CPU的使用率也就随着提高,那么这样所带来的收益就是程序执行速度提高。
b)简化程序编写,如果按照平时我们要分别的做多个事情,那么就可能需要使用大量的校验,来判断状态,但是如果用多线程,我们就可以将事情分开,有多个线程单一执行。这样也同样的就简化了代码的书写。
c)提高程序的响应速度,在传统的程序中,都是需要一步一步的执行,这样就好比一个人搬砖和十个人搬砖,速度可想而知。
3、多线程怎么使用?
使用方式有两种:一种是继承Thread,一种是实现Runnable接口
* 入门案例一:继承Thread
public class TheadDemo1 extends Thread{ @Override public void run() { for (int i = 0; i < 60; i++) { System.out.println("this is theadDemo2 thread"); } } } /*测试类*/ class testThread{ public static void main(String[] args) { new TheadDemo1().start(); } }
* 入门案例二:实现Runnable
public class ThreadDemo4 implements Runnable { @Override public void run() { System.out.println("实现runnable接口"); } } /*测试类*/ class testDemo{ public static void main(String[] args) { new Thread(new ThreadDemo4()).start(); } }
多线程这个东西还是需要自己慢慢的专研吧,这里也就只写了一点点基本的。一般我使用都是实现runnable,原因就是 “单继承,多实现”
以上是关于浅谈多线程的主要内容,如果未能解决你的问题,请参考以下文章