一.多线程的概念

线程,进程,多线程

  • 说起进程,不得不说一下程序(就是我们所写的代码),程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。
  • 进程则是执行程序的一次执行过程。及在一个操作系统中,每一个独立执行的程序都可以称之为一个进程,也就是“正在运行的程序”。它是一个动态概念。是系统资源分配的单位。例如:QQ,播放器,游戏等。
  • 线程就是指的是进程中的实际运行单位,它是操作系统中进行运算调度的最小单位。换句话说,线程是进程中的一个最小运行单位。每个运行的程序都是一个进程,在一个进程中还可以有多个执行单元同时运行,这些执行单元可以看做程序执行的一条条线索,被称为线程。一个进程中至少有一个线程,不然没有存在的意义。线程就是CPU调度和执行的单位。例如:你在看视频(进程)的同时可以听到声音(线程),看到图像(线程)和字幕(线程)等。
  • 多线程就是指的是一个进程中同时有多个执行路径即线程在执行。

注意:很多多线程都是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,因为切换的很快,所以就有同时进行的错觉。

进程和线程的关系

进程和线程是包含关系。及一个进程可以有多个线程。

多线程使用的场景

1.客户端(移动App端)开发

2.异步发送短信/邮件

3.将执行比较耗时的代码改用多线程异步执行

4.异步写入日志

5.多线程下载

多线程的优点

1.使用线程可以把占据时间长的程序中的任务放到后台去处理

2.用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事情的处理,可以弹出一个进度条来显示处理的进度。

3.程序的运行速度可能加快。

4.在一些等待的任务实现上,如用户输入,文件读写和网络收发数据等,线程就比较有用。在这种情况下可以释放一些珍贵的资源如内存占用等。

5.多线线程技术在IOS软件开发中也有举足轻重的作用。

多线程的缺点

1.如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换。

2.更多的线程需要更多的内存空间。

3.线程可能会给程序带来更多的“bug”,因此要小心使用。

4.线程的中止需要考虑其对程序运行的影响。

5.通常块模型数据是在多个线程共享的,需要防止线程死锁情况的发生。

你可能感兴趣的:(java)