进程&线程知识

进程:运行中的应用程序,一套顺序执行的指令,每个进程都有自己独立的内存空间。
线程:并发执行的顺序流,一个进程包括多个顺序执行的流程,这些流程被称为线程。

JVM就是一个进程,在JVM中分出线程,比如main()就是主线程。同时开辟并发执行的序列即多线程。
线程是一个操作系统创建并维护的一个资源,对于单CPU系统来说,某一时刻只可能由一个线程在运行。一个Thread对象就表示一个线程。

线程由三部分组成:
  1)CPU分配给线程的时间片
  2)线程代码(写在run方法中)
  3)线程数据

进程的数据空间独立;线程的数据空间共享,能充分使用CPU资源
线程间通讯容易。共享数据就要加锁、解锁,会降低效率。
线程间共享的数据包括堆和栈;堆空间共享,栈空间独立。

进程的调度:
  进程的调度是由OS负责的(分为独占式和共享式)
  由OS将时间分为若干时间片,调度系统把每个时间片分给多个进程,线程也是类似的。
  JAVA在语言级支持多线程,但负责分配时间的仍然是OS。

线程并发执行是一个宏观概念,微观上是串行的。

对对象的方法加synchronized等价于对当前对象加锁

线程优先级:
  值越大优先级越高,被OS选中的可能性就越大。

当一个对象分配给某线程所标记时,其它线程不能访问同步方法,但能访问非同步方法。
每一个对象都有一个互斥锁标记(monitor),这个锁标记是准备分配给线程的,且只能分配给一个线程。

来源:
http://wenku.baidu.com/view/7a36f0db6f1aff00bed51e21.html 

posted @ 2012-02-06 14:55  万法自然~  阅读(159)  评论(0)    收藏  举报