进程与线程

Posted gujy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程与线程相关的知识,希望对你有一定的参考价值。

 

  进程中有多个不同的执行路径或者多个线程的集合

  正在运行的程序

  进程是执行中的程序,一个操作系统可以有多个进程(系统运行多个软件)

 

 

在进程中,程序代码是怎么执行的?? 

在进程中一定有一个线程,这个线程叫主线程 (Java中的main)

 

 

什么是线程?

正在独立运行的程序

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务

一个执行顺序,一个执行流程,执行路径

使用多线程可以提高程序的效率,提高用户的体验(一个进程,多个线程)

举例:百度网盘同时下载多个任务,极大的太高的百度网盘的效率

 缺点:更多的线程需要更多的电脑内存空间

  1. 每个线程都互不影响,独立运行

 

线程的常用方法:

1.获取当前的线程:Thread.currentThread

2.返回该线程的标识符:getId

3.返回该线程的名:getName 

4.返回线程优先级:getPriority

 

5.获取当前线程状态:getState 

6.测试线程是否处于活动状态:isAlive

 

7.线程是否为守护线程:isDaemon

8.是否已经中断:isInterrupted

 

多线程的应用场景:多线程下载,爬虫,前端开发ajax(异步上传),分布式job(需要同时一个执行多个任务调度)

 

线程的优先级:

Thread.MIN_PRIORITY::最高优先级(10)

Thread.MAX_PRIORITY:中等优先级(5)

Thread.NORM_PRIORITY:最低优先级(1)

 

创建线程有哪些方式:

  1. 使用继承Therad类的方式
  2. 使用实现runnable接口方式
  3. 使用匿名内部类方法
  4. callable
  5. 使用线程池创建线程

 什么是同步,什么是异步?

同步: 代码从上往下进行执行 

异步(多线程):多线程之间,每个程序互不影响,不同步执行---cpu执行权

 

多线程运行状态:

  1. 新建状态
  2. 就绪状态
  3. 阻塞状态
  4. 运行状态
  5. 死亡状态

 

join()方法作用:让其他线程变为等待

 

yield方法的作用:暂停当前正在执行的线程,并执行其他线程

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

Android中线程与线程,进程与进程之间如何通信?

JAVA线程与线程进程与进程间通信

OS——进程与线程

OS——进程与线程

OS——进程与线程

OS——进程与线程