多线程 基本概念

进程(process):正在执行的程序,每个进行拥有独立的内存空间

线程,也称为轻量级进程,线程只能在单个进程的作用域内进行活动,线程间共享内存

线程的五种状态

新建:使用new运算符创建一个线程,该线程仅仅是一个空对象,系统没有分配资源

可运行:使用start()方法启动一个线程后,系统为该线程分配除CPU以外的资源

运行:Java运行系统,通过调度,选中一个Runnable的线程,使其占有CPU并转为运行状态,此时运行的是线程中的run方法

阻塞:正在运行的线程由于某种原因不能继续执行,进入阻塞状态

死亡:线程运行结束



线程的优先级

  在任何时刻,如果一个比其他线程优先级高的线程变为可运行状态,系统将选择该线程来运行。也就是所谓的  先占式调度  

  先占式调度分为:

    独占方式:当前执行线程将一直执行下去,直到有更高级别的线程进入可运行状态或当前线程执行结束或者由于其他原因,当前线程主动放弃CPU

    分时方式:当前运行的线程获取一个CPU的时间片,时间结束后即使没有执行完毕也放弃CPU,进入可运行状态,继续等待CPU资源

时间: 2024-10-25 06:54:23

多线程 基本概念的相关文章

多线程的概念

多线程的概念 一.程序与进程 1.程序:一段静态的代码. 2.进程:程序的一次动态执行过程,它对应从代码加载.执行到执行完毕的一个完整过程. 3.进程也称任务,支持多个进程同时执行的OS就被称为多进程OS或多任务OS. 二.进程与线程 在一个程序内部也可以实现多个任务并发执行,其中每个任务称为线程. 线程是比进程更小的执行单位,它是在一个进程中独立的控制流,即程序内部的控制流. 特点:线程不能独立运行,必须依赖于进程,在进程中运行. 每个程序至少有一个线程称为主线程. 单线程:只有一条线程的进程

Java多线程编程总结一:多线程基本概念

Java多线程编程总结一 – 初识多线程 进程.多进程.线程.多线程的概念 进程(process):CPU的执行路径.通俗的说就是系统中正在运行的程序.比如我们打开了浏览器.QQ等等,这些程序一旦被打开运行了,就是所谓的进程. 多进程:系统中同时运行的多个程序.这个我们应该不难理解了,在打开浏览器的同时我们也可以QQ聊天.CS单机游戏等. 线程(thread):运行在进程中的运行单元.比如迅雷下载中我们的某一个下载任务就是一个线程. 多线程:同理可知,每个进程里面有多个独立的或者相互有协作关系的

多线程之概念解析

在介绍多线程之前明确几个概念 进程和线程 进程:是计算机中已运行的实体(计算机可以工作都是进程的功劳),进程是指在系统中正在运行的一个应用程序 线程:操作系统能够运行调度的最小单元(它是进程的组成部分)负责进程执行,一个线程的所有任务都是在线程中执行 区别和联系: 一个程序至少要有进程,一个进程至少要有一个线程. 进程:资源分配的最小独立单元,进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程:进程下的一个分支,是进程的实体,是CPU

Java多线程编程— 概念以及经常使用控制

多线程能满足程序猿编写很有效率的程序来达到充分利用CPU的目的,由于CPU的空暇时间可以保持在最低限度.有效利用多线程的关键是理解程序是并发运行而不是串行运行的.比如:程序中有两个子系统须要并发运行,这时候就须要利用多线程编程. 线程的运行中须要使用计算机的内存资源和CPU. 一.    进程与线程的概念 这两者的概念,这里仅仅给出自己狭隘的理解: 进程:进程是一个独立的活动的实体,是系统资源分配的基本单元. 它能够申请和拥有系统资源. 每一个进程都具有独立的代码和数据空间(进程上下文). 进程

细说.NET 中的多线程 (一 概念)

为什么使用多线程 使用户界面能够随时相应用户输入 当某个应用程序在进行大量运算时候,为了保证应用程序能够随时相应客户的输入,这个时候我们往往需要让大量运算和相应用户输入这两个行为在不同的线程中进行. 效率原因 应用程序经常需要等待一些资源,如等待网络资源,等待io资源,等待用户输入等等.这种情况下使用多线程可以避免CPU长时间处于闲置状态. 用户态,内核态 线程内的资源有两种运行态,即用户态和内核态.某些运算可以在堆栈上进行,这种情况线程是在用户态运行的,某些需要高权限运行的指令,或者某些优先级

多线程的概念理解

线程的概念:Thread 1.每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程,进程也可能是整个程序或者是部分程序的动态执行.线程是一组指令的集合,或者是程序的特殊段,可以独立的执行,也可以理解为代码运行的上下文,所以说线程基本上是轻量级的进程,他负责在单个程序里执行多个任务.通常由操作系统负责多个线程的调度和执行. 2.线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.  以软件或硬件上实现多个线程并发执行的技术 多线程的目的(作用):节

java多线程基本概念与简单实用

概述 程序:Program,是一个静态的概念 进程:Process,是一个动态的概念 进程是程序的一次动态执行过程, 占用特定的地址空间.每个进程都是独立的,由3部分组成cpu,data,code 缺点:内存的浪费,cpu的负担 线程:Thread,是进程中一个"单一的连续控制流程"  (a single sequential flow ofcontrol)/执行路径.线程又被称为轻量级进程(lightweight process). 一个进程可拥有多个并行的(concurrent)线

拨开云雾见天日 —— Java多线程编程概念剖析

说到Java多线程编程,大多数人都会想到继承Thread或实现Runnable编程,new 一个Thread实例,调用start()方法,由OS调用即可.具体过程如下: public class MyThread extends Thread {     @Override     public void run() {         System.out.println("MyThread");     }     public static void main(String[] 

Java多线程编程— 概念以及常用控制

多线程能满足程序员编写非常有效率的程序来达到充分利用CPU的目的,因为CPU的空闲时间能够保持在最低限度.有效利用多线程的关键是理解程序是并发执行而不是串行执行的.例如:程序中有两个子系统需要并发执行,这时候就需要利用多线程编程.线程的运行中需要使用计算机的内存资源和CPU. 一.    进程与线程的概念 这两者的概念,这里只给出自己狭隘的理解: 进程:进程是一个独立的活动的实体,是系统资源分配的基本单元.它可以申请和拥有系统资源.每个进程都具有独立的代码和数据空间(进程上下文).进程的切换会有

Java多线程——<八>多线程其他概念

一.概述 到第八节,就把多线程基本的概念都说完了.把前面的所有文章加连接在此: Java多线程——<一>概述.定义任务 Java多线程——<二>将任务交给线程,线程声明及启动 Java多线程——<三>简单的线程执行:Executor Java多线程——<四>让线程有返回值 Java多线程——<五>后台线程(daemon) Java多线程——<六>更方便的线程 Java多线程——<七>多线程的异常捕捉 均是个人理解和总结,代