线程的概念

原创 2013年12月04日 09:50:55

DOS是单进程的操作系统
windows、linux、MAC操作系统是多进程和多线程的操作系统

 

java线程是通过java.lang.Thread类来实现的
1、new Thread的子类对象就能产生一个新线程
2、定义线程类实现Runnable接口

 

并发性(concurrency)和并行性(parallel)是两个概念:

1、并行指在同一时刻,有多条指令在多个处理器上同时执行;

2、并发指在同一时刻只能有一条指令执行,但是多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。

 

一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

 

操作系统可以同时执行多个任务,每个任务就是进程;进程可以同时执行多个任务,每个任务就是线程。

 

多线程编程有如下优点:

1、进程之间不能共享内存,但是线程之间共享内存非常容易

2、系统创建进程时需要为该进程重新分配系统资源,但是创建线程则代价小得多,因此使用多线程来实现多任务并发比多进程的效率高

3、java语言内置了多线程功能支持,而不是单纯地作为底层操作系统的调度方式,从而简化了java多线程编程。

 

使用继承Thread类的方法来创建线程类时,多个线程之间无法共享线程类的实例变量

 

采用Runnable接口的方式创建的多个线程可以共享线程类的实例属性。因为在这种方式下,程序所创建的Runnable对象只是线程的target,而多个线程可以共享同一个target,所以多个线程可以共享同一个线程类(实际上应该是线程的target类)的实例属性。

 

当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建、就绪、运行、阻塞、死亡5种状态。

 

由于cpu需要在多条线程之间切换,所以线程的状态也会多次在运行、阻塞之间切换。

 

当程序使用new关键字创建了一个线程以后,该线程就处于新建状态,此时它和其他的java对象一样,仅仅由java虚拟机为其分配内存,并初始化其成员变量的值。当线程对象调用了start()方法之后,该线程处于就绪状态,java虚拟机会为其创建方法调用栈和程序计数器,处于这个状态的线程并没有开始运行,只是表示该线程可以运行了。至于该线程何时开始运行,取决于JVM里线程调度器的调度

 

线程从阻塞状态只能进入就绪状态,无法直接进入运行状态而就绪和运行状态之间的转换通常不受程序控制,而是由系统线程调度所决定,当处于就绪状态的线程获得处理器资源时该线程进入运行状态;当处于运行状态的线程失去处理器资源时,该线程进入就绪状态。但一个方法例外,调用yield()方法可以让运行状态的线程转入就绪状态

 

 

当主线程结束时,其他线程不受任何影响,并不会随之结束,一旦子线程启动起来后,它就拥有和主线程相同的地位,它不会受主线程的影响。

 

不要试图对一个已经死亡的线程调用start()方法使它重新启动,死亡就是死亡,该线程将不可再次作为线程执行。

线程会以如下三种方式结束,结束后就处于死亡状态:

1、run()或者call()方法执行完成,线程正常结束

2、线程抛出一个未捕获的Exception或Error

3、直接调用线程的stop()方法来结束该线程——该方法容易导致死锁,通常不推荐使用。 

 

 

  • ebbcce1f-26b7-3ad5-9c32-7ecf896a3d46-thumb.jpg
  • 大小: 54.7 KB

进程、线程与多线程概念详解

一、概述 在windows中,每一个打开运行的应用程序或后台程序,比如运行中的QQ、谷歌浏览器、网易云音乐、资源管理器等都是一个进程。我们感觉这些程序是“同时”运行的,但实际上,一个处理器同一时刻只...
  • zhangliangzi
  • zhangliangzi
  • 2016年04月24日 21:33
  • 2141

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

什么是线程 一个线程是进程的一个顺序执行流。同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈。线程在切换时负荷小,因此,线程也被称为轻负荷进程。一个进程中可以包含多...
  • BornLiLi
  • BornLiLi
  • 2017年02月19日 16:53
  • 5463

Java中线程和进程的一些概念的理解

今天复习熟悉了Java并发的一些概念。  程序:系统要完成的一个任务,就是一个程序;  进程:每个运行中的程序就是一个进程,Windows任务管理器上可以看到每一个进程,Linux下使用ps –e...
  • li12412414
  • li12412414
  • 2016年05月17日 16:06
  • 1639

操作系统_CH4_线程对称多处理和微内核_概念题部分

  • 2013年01月15日 18:10
  • 208KB
  • 下载

理解操作系统中进程和线程的概念,比较单进程和多进程的程序结构和执行方面的区别,指出多线程的好处

  • 2009年01月16日 13:42
  • 1.11MB
  • 下载

进程线程的概念,讲的很详细

  • 2011年04月14日 08:33
  • 31KB
  • 下载

Java 的多线程,程序、进程和线程的概念31

  • 2008年06月17日 13:11
  • 7.49MB
  • 下载

Windows内核原理与实现--Windows进程线程基本概念(1)

操作系统需要做的事情是:维护一个全局的进程表,记录下当前有哪些进程正在被执行,把时间分成适当的片段...
  • rice19
  • rice19
  • 2014年04月17日 21:37
  • 837

Java线程:概念与原理

Java线程:概念与原理 一、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进程是指一个内存中运行的应用程序,每个进程都有自己独...
  • zrbcool
  • zrbcool
  • 2015年01月16日 13:50
  • 3239

Linux环境下编程(二)——线程基础概念

上一篇讲了进程的基本概念,这一篇将线程的。 基础概念 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(P...
  • sshhiixx
  • sshhiixx
  • 2015年07月27日 14:50
  • 509
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:线程的概念
举报原因:
原因补充:

(最多只允许输入30个字)