A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 山水游客 中级黑马   /  2012-6-16 16:42  /  1713 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙胜录 于 2012-6-18 23:10 编辑

有这样一个疑惑,当我们打开了了一个程序时就开启了一个进程,而 一个进程里可以有多个顺序流 每个流则为一个线程 。 那么,是不是线程是在进程的基础上的、没有进程就没有线程?

9 个回复

正序浏览
一个不太恰当的例子,你面前有一杯水,你要喝掉它。大脑组织了一个思想(进程),然后你的腿负责走过去(一个线程),手负责拿起杯子(一个线程),嘴负责喝(一个线程)。线程负责最基本的功能{:soso_e120:}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
打开windows的任务管理器,里面的每一个都是一个进程,但这个进程可以包含多个线程,线程是最小的单位,还拿毕老师上课的例子,360里面,360是一个程序,打开后会有一个进程,但在这个进程中可以有很多线程,如:清理垃圾文件,扫描木马等。再打开迅雷,迅雷是一个程序,会启动一个进程,但下载时可以启动多的线程分块下载。不知道我说明白没{:soso_e113:}
回复 使用道具 举报
进程是程序运行的最小单位。

线程是CPU调度的最小单位。

实现多线程程序的两种方式:
从Thread类继承;
实现Runnable接口。唯一的一个要实现的方法是void run()。通过完成Runnable接口,实现一个线程类。

同一个线程对象的start()方法不能多次调用。但润run()可以,通过start()方法将线程交给CPU处理。

回复 使用道具 举报
进程:是一个正在执行的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径或执行单元
线程:就是进程中一个独立的控制单元。线程在控制着进程的执行
一个进程中至少有一个线程
  Java虚拟机VM启动的时候会有一个进程java.exe
该进程中至少一个线程负责java程序的运行
而且这个进程运行的代码存在于main方法中,负责执行java程序的线程成为主线程。
java虚拟机就是多线程,比如堆内存中一边执行着主线程,一边有垃圾回收机制的线程。
回复 使用道具 举报
进程是指在操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;
线程是指"进程"中某个单一顺序的控制流。也被称为轻量进程.
如果把上课的过程比作进程,那么每个学生就是一个线程,他们共享教室,即线程共享进程的内存空间。每一个时刻,只能一个学生问老师问题,老师回答完毕,轮到下一个。即线程在一个时间片内占有cpu。

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  是的  你的理解是正确的
回复 使用道具 举报
进程是程序的一次执行,线程可以理解为进程中的执行的一段程序片段。在一个多任务环境中下面的概念可以帮助我们理解两者间的差别:   
      进程间是独立的,这表现在内存空间,上下文环境;线程运行在进程空间内。   
      一般来讲(不使用特殊技术)进程是无法突破进程边界存取其他进程内的存储空间;而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间。
      同一进程中的两段代码不能够同时执行,除非引入线程。   
线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。   
      线程占用的资源要少于进程所占用的资源。   
      进程和线程都可以有优先级。   
      在线程系统中进程也是一个线程。可以将进程理解为一个程序的第一个线程。
回复 使用道具 举报
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,
进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,
它是比进程更小的能独立运行的基本单位.
一个程序至少有一个进程,一个进程至少有一个线程.
线程在执行过程中与进程还是有区别的。
每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。
但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
    所以说楼主所说的比较片面,没有说明是谁的线程谁的进程.是否属于一个程序.
回复 使用道具 举报
进程是一个正在执行的程序计算机中正在运行的程序实例;
线程是"进程"中某个单一顺序的控制流
一个进程包含许多的 线程
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马