浅谈多线程

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,原因就是 “单继承,多实现”

 

  

以上是关于浅谈多线程的主要内容,如果未能解决你的问题,请参考以下文章

浅谈多线程

浅谈多线程在java程序中的应用

mysql--浅谈多表查询1

多任务损失函数浅谈多任务中的损失函数如何定义与优化

再谈多线程编程——线程的概念多线程的创建守护线程线程状态的转化

多线程与多进程的区别