线程的基本概念、线程的基本状态以及状态之间的关 系

一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每 个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,

每个程序至少 都有一个线程,即main方法执行的那个线程。如果只是一个cpu,它怎么能够同时执 行多段程序呢?这是从宏观上来看的,cpu一会执行a线索,

一会执行b线索,切换时 间很快,给人的感觉是a,b在同时执行,好比大家在同一个办公室上网,只有一条链 接到外部网线,其实,这条网线一会为a传数据,

一会为b传数据,由于切换时间很短 暂,所以,大家感觉都在同时上网。

状态:就绪,运行,synchronize阻塞,wait和sleep挂起,结束。wait必须在synchroniz ed内部调用。 调用线程的start方法后线程进入就绪状态,

线程调度系统将就绪状态的线程转为运行状态,遇到synchronized语句时,由运行状态转为阻塞,当synchronized获得锁后,由 阻塞转为运行,

在这种情况可以调用wait方法转为挂起状态,当线程关联的代码执行 完后,线程变为结束状态。

时间: 2024-11-10 15:42:33

线程的基本概念、线程的基本状态以及状态之间的关 系的相关文章

09_1_线程的基本概念

09_1_线程的基本概念 1. 线程的基本概念 线程的一个程序内部的顺序控制流. 线程和进程的区别 每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销. 线程可以看成是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小. 多进程:在程序系统中同时运行多个任务(程序). 多线程:在同一个应用程序中有多个顺序流同时执行 Java的线程是通过java.lang.Thread类来实现的. VM启动时会有一个自主方法(publi

线程的基本概念、状态以及状态之间的关系

基本概念:在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身. 六个基本状态:new,runnable,waiting,timed waiting,blocked和 terminated. wait方法必须在synchronized内部调用. l 新建new:新创建一个线程对象. l 可运行runnable:线程对象创建后,其它线程(比如main线程)调用了该对象的start()方法.该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权.

java多线程(1) 线程的基本概念

一.线程的基本概念: 线程是一个程序里面不同的执行路径. 程序里面不同的执行路径,每一个分支都是一个线程. 进程:静态的概念.机器上的一个class文件,机器上的一个exe文件,这叫一个进程. 机器里面实际上运行的都是线程. window等.linux等都是多进程,多线程的系统. CPU的执行是这样的: CPU速度比较快,一秒钟算好几亿次,它把自己的时间分成一个一个的小时间片,这个时间片我执行你一会,再执行他一会,虽然有几十个线程, 没关系,执行这个一会,执行那个一会,挨着排的都执行一遍,但是对

Java深度历险(三)——Java线程?:基本概念、可见性与同步

开发高性能并发应用不是一件容易的事情.这类应用的例子包括高性能Web服务器.游戏服务器和搜索引擎爬虫等.这样的应用可能需要同时处理成千上万个请求.对于这样的应用,一般采用多线程或事件驱动的架构.对于Java来说,在语言内部提供了线程的支持.但是Java的多线程应用开发会遇到很多问题.首先是很难编写正确,其次是很难测试是否正确,最后是出现问题时很难调试.一个多线程应用可能运行了好几天都没问题,然后突然就出现了问题,之后却又无法再次重现出来.如果在正确性之外,还需要考虑应用的吞吐量和性能优化的话,就

线程的基本概念和操作

一:线程的基本概念 1.      调用run()方法 public class Demo1 { publicstatic void main(String[] args) { Thread1th1=new Thread1("线程A"); Thread1th2=new Thread1("线程B"); th1.run(); th2.run(); } } class Thread1 extends Thread{ privateString name; publicTh

java多线程_01_线程的基本概念

线程:一个程序里边不同的执行路径 例子程序:这个例子程序是一条执行路径.这个程序只有一个分支,就是main方法,叫主线程 public static void main(String[] args) { m1(); } public static void m1(){ m2(); m3(); } public static void m2(){} public static void m3(){} 程序执行示意图: 进程:进程是一个静态的概念,机器上的一个class文件,一个exe文件. 程序的

线程,进程概念

当多个客户端访问服务端的时候,每个客户端都会对服务端说:’嗨,我想连接你‘.服务端的sorcket通过while循环,一直监听着是否有client请求连接,当有请求(一个或者多个)连接过来的时候:就会分配(一个或者多个)进程或者线程给client,并保持连接,进行通话. 线程是应用程序的最小单位, #!/usr/bin/env python # -*- coding:utf-8 -*- import threading import time def show(arg): time.sleep(

线程的基本概念 / 计算机程序的思维逻辑

创建线程 线程表示一条单独的执行流,它有自己的程序执行计数器,有自己的栈.下面,我们通过创建线程来对线程建立一个直观感受,在Java中创建线程有两种方式,一种是继承Thread,另外一种是实现Runnable接口,我们先来看第一种. 继承Thread Java中java.lang.Thread这个类表示线程,一个类可以继承Thread并重写其run方法来实现一个线程,如下所示: public class HelloThread extends Thread {        @Override 

java线程的基本概念

进程和线程 进程的诞生 操作系统中有2个任务A,B,任务A先执行,执行到一半需要io,因此要大量时间,在这个时间段内cpu是空闲的,浪费了资源,于是就有进程,当A暂时无法利用cpu,但是又不能销毁时,就把它暂存起来,让B来执行.B执行完或者需要A执行时,根据暂存的信息回复过来. 每个进程都对应一定的内存空间,并且只能使用自己的内存空间,并且保留程序的运行状态,这个也为进程切换提供了基础. 线程的诞生 第一,多核处理器的出现,为了更好的利用多核处理器,避免资源的浪费.第二程序的需要,人们需要在一个