精华内容
下载资源
问答
  • 进程线程的差别

    2017-10-06 22:30:34
    内容有任何问题,请留言相告,不胜感激!! 进程是程序的执行,线程可以理解为进程中执行的一段程序片段 在一多任务环境中,进程有独立的内存...线程属于进程的,进程退出则该进程所产生的线程会被强制退出并清除


    内容有任何问题,请留言相告,不胜感激!!

    进程是程序的执行,线程可以理解为进程中执行的一段程序片段
    在一个多任务环境中,进程有独立的内存空间、上下文环境
    一般情况下,进程无法突破进程边界存取其他进程内的存储空间,而线程由于处在进程空间内,同一进程所产生的线程共享同一内存空间。
    同一进程中两段代码不能同时执行,除非引入多线程
    线程是属于进程的,进程退出则该进程所产生的线程会被强制退出并清除
    线程占用的资源少于进程占用的资源
    进程和线程都有优先级。


    图示1


    展开全文
  • 1.进程和线程的区别通俗一点说,进程就是程序的一次执行,而线程...同一进程的两段代码是不可能同时执行的,除非引入线程线程属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。线程占用的资...

    1.进程和线程的区别

    通俗一点说,进程就是程序的一次执行,而线程可以理解为进程中的执行的一段程序片段。

    用一点文词说就是,每个进程都有独立的代码和数据空间(进程上下文);而线程可以看成是轻量级的进程。一般来讲(不使用特殊技术),同一进程所产生的线程共享同一块内存空间。

    同一进程中的两段代码是不可能同时执行的,除非引入线程。

    线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。

    线程占用的资源要少于进程所占用的资源。

    进程和线程都可以有优先级。

    在线程系统中进程也是一个线程。可以将进程理解为一个程序的第一个线程。

    多进程——在操作系统中,能同时运行多个任务(程序)。

    多线程——在同一应用程序中,有多个顺序流同时执行。

    2.通过铁路售票程序来理解实现多线程的两种方法:通过java.lang.Thread类和通过Runnable接口

    java中有两种实现多线程的方式。一是直接继承Thread类,二是实现Runnable接口。那么这两种实现多线程的方式在应用上有什么区别呢?

    为了回答这个问题,我们可以通过编写一段代码来进行分析。我们用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示。

    我们首先这样编写这个程序:

    public class ThreadDome1{

    public static void main(String[] args){

    ThreadTest t = new ThreadTest();

    t.start();

    t.start();

    t.start();

    t.start();

    }

    }

    class ThreadTest extends Thread{

    private int ticket = 100;

    public void run(){

    while(true){

    if(ticket > 0){

    System.out.println(Thread.currentThread().getName() +

    "is saling ticket" + ticket--);

    }else{

    break;

    }

    }

    }

    }

    上面的代码中,我们用ThreadTest类模拟售票处的售票过程,run方法中的每一次循环都将总票数减1,模拟卖出一张车票,同时该车票号打印出来,直接剩余的票数到零为止。在ThreadDemo1类的main方法中,我们创建了一个线程对象,并重复启动四次,希望通过这种方式产生四个线程。从运行的结果来看我们发现其实只有一个线程在运行,这个结果告诉我们:一个线程对象只能启动一个线程,无论你调用多少遍start()方法,结果只有一个线程。

    我们接着修改ThreadDemo1,在main方法中创建四个Thread对象:

    public class ThreadDemo1{

    public static void main(String[] args){

    new ThreadTest().start();

    new ThreadTest().start();

    new ThreadTest().start();

    new ThreadTest().start();

    }

    }

    class ThreadTest extends Thread{

    private int ticket = 100;

    public void run(){

    while(true){

    if(ticket > 0){

    System.out.println(Thread.currentThread().getName() +

    " is saling ticket" + ticket--);

    }else{

    break;

    }

    }

    }

    }

    这下达到目的了吗?

    从结果上看每个票号都被打印了四次,即四个线程各自卖各自的100张票,而不去卖共同的100张票。这种情况是怎么造成的呢?我们需要的是,多个线程去处理同一个资源,一个资源只能对应一个对象,在上面的程序中,我们创建了四个ThreadTest对象,就等于创建了四个资源,每个资源都有100张票,每个线程都在独自处理各自的资源。

    经过这些实验和分析,可以总结出,要实现这个铁路售票程序,我们只能创建一个资源对象,但要创建多个线程去处理同一个资源对象,并且每个线程上所运行的是相同的程序代码。在回顾一下使用接口编写多线程的过程。

    public class ThreadDemo1{

    public static void main(String[] args){

    ThreadTest t = new ThreadTest();

    new Thread(t).start();

    new Thread(t).start();

    new Thread(t).start();

    new Thread(t).start();

    }

    }

    class ThreadTest implements Runnable{

    private int tickets = 100;

    public void run(){

    while(true){

    if(tickets > 0){

    System.out.println(Thread.currentThread().getName() +

    " is saling ticket " + tickets--);

    }

    }

    }

    }

    上面的程序中,创建了四个线程,每个线程调用的是同一个ThreadTest对象中的run()方法,访问的是同一个对象中的变量(tickets)的实例,这个程序满足了我们的需求。在Windows上可以启动多个记事本程序一样,也就是多个进程使用同一个记事本程序代码。

    可见,实现Runnable接口相对于继承Thread类来说,有如下显著的好处:

    (1)适合多个相同程序代码的线程去处理同一资源的情况,把虚拟CPU(线程)同程序的代码,数据有效的分离,较好地体现了面向对象的设计思想。

    (2)可以避免由于Java的单继承特性带来的局限。我们经常碰到这样一种情况,即当我们要将已经继承了某一个类的子类放入多线程中,由于一个类不能同时有两个父类,所以不能用继承Thread类的方式,那么,这个类就只能采用实现Runnable接口的方式了。

    (3)有利于程序的健壮性,代码能够被多个线程共享,代码与数据是独立的。当多个线程的执行代码来自同一个类的实例时,即称它们共享相同的代码。多个线程操作相同的数据,与它们的代码无关。当共享访问相同的对象时,即它们共享相同的数据。当线程被构造时,需要的代码和数据通过一个对象作为构造函数实参传递进去,这个对象就是一个实现了Runnable接口的类的实例。

    标签:

    本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

    文章转载自:IT专家网

    a6e1590ae4b228073faff3806334194e.png2

    好文不易,鼓励一下吧!

    展开全文
  • 进程线程的区别

    2016-04-19 17:44:14
    1.进程和线程的区别  通俗一点说,进程就是程序的一次执行,而线程可以理解为进程中的执行的一... 同一进程的两段代码是不可能同时执行的,除非引入线程。  线程属于进程的,当进程退出时该进程所产生的线程

      1.进程和线程的区别

      通俗一点说,进程就是程序的一次执行,而线程可以理解为进程中的执行的一段程序片段。

      用一点文词说就是,每个进程都有独立的代码和数据空间(进程上下文);而线程可以看成是轻量级的进程。一般来讲(不使用特殊技术),同一进程所产生的线程共享同一块内存空间。

      同一进程中的两段代码是不可能同时执行的,除非引入线程。

      线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。

      线程占用的资源要少于进程所占用的资源。

      进程和线程都可以有优先级。

      在线程系统中进程也是一个线程。可以将进程理解为一个程序的第一个线程。

      多进程——在操作系统中,能同时运行多个任务(程序)。

      多线程——在同一应用程序中,有多个顺序流同时执行。

      2.通过铁路售票程序来理解实现多线程的两种方法:通过java.lang.Thread类和通过Runnable接口

      java中有两种实现多线程的方式。一是直接继承Thread类,二是实现Runnable接口。那么这两种实现多线程的方式在应用上有什么区别呢?

      为了回答这个问题,我们可以通过编写一段代码来进行分析。我们用代码来模拟铁路售票系统,实现通过四个售票点发售某日某次列车的100张车票,一个售票点用一个线程表示。

      我们首先这样编写这个程序:

      public class ThreadDome1{

      public static void main(String[] args){

      ThreadTest t = newww.100ksw.comain方法中,我们创建了一个线程对象,并重复启动四次,希望通过这种方式产生四个线程。从运行的结果来看我们发现其实只有一个线程在运行,这个结果告诉我们:一个线程对象只能启动一个线程,无论你调用多少遍start()方法,结果只有一个线程。

    展开全文
  • 进程线程区别

    千次阅读 2020-08-28 22:20:29
    请描述进程和线程的区别? ...同一进程的两段代码不能够同时执行,除非引入线程线程属于进程,当进程退出时该进程所产生的线程都会被强制退出并清除。线程占用的资源要少于进程所占的资源。

    请描述进程和线程的区别?
    进程是程序的一次执行。线程可以理解为进程中执行的一段程序片。在一个多任务环境中下面的概念可以帮助我们理解两者间的差别
    进程间是独立,这表现在内存空间,上下文环境上;线程运行在进程空间内。一般来讲(不使用特殊技术),线程无法突破进程边界存取其他进程内的存储空间;而线程由于处于进程空间内,所有同一进程所产生的线程共享同一内存空间。
    同一进程中的两段代码不能够同时执行,除非引入线程。
    线程是属于进程,当进程退出时该进程所产生的线程都会被强制退出并清除。线程占用的资源要少于进程所占的资源。进程和线程都可以有优先级。

    展开全文
  • 进程线程

    2020-12-23 15:03:50
    进程 进程被称为执行中的程序,但程序本身不是进程,只是被动实体,而进程是活动实体,是资源分配的最小单位。...它与属于同一进程的其他线程共享代码段、数据段,其独有的:栈(保存其运行状态..
  • 1.进程和线程的区别 通俗一点说,进程就是程序的一次执行,而线程可以理解为进程中的执行的一段... 同一进程的两段代码是不可能同时执行的,除非引入线程线程属于进程的,当进程退出时该进程所产生的线程都会被
  • 线程与多进程区别

    2020-08-06 20:38:58
    进程与线程区别 什么是进程(Process):普通的解释就是,进程是程序的一次执行,而什么是线程(Thread),线程可以理解为进程...同一进程的两段代码不能够同时执行,除非引入线程线程属于进程的,当进程退出时
  • 进程:内存独立,线程共享同一进程的内存,一个进程就像一个应用程序,例如qq和word,这属于两个进程, 进程是资源的集合,线程是执行单位 进程之间不能直接互相访问,同一进程中的程可以互相通信 创建新进程消耗...
  • 每个进程有自己的地址空间,两个进程中的...线程也被称为轻权进程,同一进程的线程共享地址空间,没有通信的必要,但是要做好同步/互斥,保护共享的全局变量。 线程拥有自己的栈。同步/互斥是原语primitives(在...
  • java线程进程的理解

    2020-05-26 22:45:19
    1 并发和并行? 并发:指两个或多个事件在同一个时间段内发生。(交替执行) 单核:cpu可能在一个时间段交替执行不同程序 并行: 指两个或多个事件在同一时刻发生(同时发生) ...cpu在多个线程之间高速切换...
  • 进程和程序是两个密切相关但又不同概念。进程和程序有着明显区别,程序与进程之间区别主要包含以下几个方面。 1、进程更能真实地描述并发,而程序不能; 2、进程是由进程控制块、程序段、数据段三部分组成; ...
  • 多线程 并发与并行 并行:两个事件在同一时刻都在发生。 并发:两个事件在同一个时间段内都在发生。(交替执行) ...线程属于某个进程,一个进程可以有多个线程,每个线程运行互不影响。 进程与线程区别...
  • 线程与进程之间区别 区分这些之间不同以及之间通信原则, 也是真正理解和使用并发基础, 如果这些关系理解不透彻那么也 并发开发也是一句空话。 对理解数据库设置连接...同一进程的线程因同属于地址...
  • 进程线程模型

    2020-08-16 18:10:53
    最近在面试,进程线程模型几乎必问,所以就想来整理整理...注意:这两个说法都没有毛病,只是线程是后来引入线程继承了进程是CPU调度单位属性,但是进程仍然是资源拥有者,线程不拥有资源,而是和处于同一
  • 多任务、进程线程

    2012-09-12 09:46:00
    由 于同一进程的所有线程共享进程的虚拟地址空间,并且线程的中断是汇编语言级的,所以可能会发生两个线程同时访问同一个对象(包括全局变量、共享资源、 API函数和MFC对象等)的情况,这有可能导致程序错误。...
  • 对java中的线程感想

    2009-02-07 22:26:00
    1.进程和线程的区别 通俗一点说,进程就是程序的一次执行,而线程可以理解为进程中的执行的一段程序片段。... 同一进程的两段代码是不可能同时执行的,除非引入线程。 线程属于进程的,当进程退出时该进程所产生
  • 并发:指两个或多个事件在同一时段内发生 交替执行 并行:指两个或多个事件在同一时刻发生(同时发生) 同时执行 进程线程 进程:进入内存程序加进程 所有应用程序都需要进入到内存中执行,临时存储RAM中 ...
  • 线程的同步

    2006-10-18 14:58:00
    为什么需要同步 由于同一进程的所有线程共享进程的虚拟地址空间,并且线程的中断是汇编语言级的,所以可能会发生两个线程同时访问同一个对象(包括全局变量、共享资源、API函数和MFC对象等)的情况,这有可能导致...
  • 线程基础

    2014-07-03 13:25:00
    线程是cpu的调度单位,不拥有系统资源,和属于同一进程的其他线程共享进程的资源。 一、线程标识 进程id在整个系统中是唯一的,但线程id不同,只在它所属的进程环境中有效。 进程id用pid_t数据类型来表示,是一...
  • java线程

    2011-01-10 14:03:00
      1.进程和线程的区别  通俗一点...  同一进程的两段代码是不可能同时执行的,除非引入线程。  线程属于进程的,当进程退出时该进程所产生的线程都会被强制退出并清除。  
  • 由于同一进程的所有线程共享进程的虚拟地址空间,并且线程的中断是汇编语言级的,所以可能会发生两个线程同时访问同一个对象(包括全局变量、共享资源、API函数和MFC对象等)的情况,这有可能导致程序错误。属于不同...
  • 读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程各个线程。当然如果一读写锁存放在多进程共享某个内存区中,那么还可以用来进行进程间同步,和互斥量...
  • 读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程各个线程。当然如果一读写锁存放在多进程共享某个内存区中,那么还可以用来进行进程间同步, 相对互斥...
  • 线程学习笔记

    2019-09-09 20:53:38
    同一进程线程是互抢资源竞争关系。 线程与进程:一个进程中可以有一个到多个线程,一个线程属于一个进程。CPU时间片:内存空间和系统资源。 线程实现三种方式。前种是重点 继承thread类方式实现...
  • 由于同一进程的所有线程共享进程的虚拟地址空间,并且线程的中断是汇编语言级的,所以可能会发生两个线程同时访问同一个对象(包括全局变量、共享资源、API函数和MFC对象等)的情况,这有可能导致程序错误。属于不同...
  • 线程与调度算法

    2017-11-05 19:21:58
    它与属于同一进程的其他线程共享代码段、数据段和其他操作系统资源。 一个应用程序通常是作为一个具有多个控制线程的独立进程实现的,例如浏览器有一个线程来渲染UI,另一个线程来发起异步请求。进程创建很消耗资源...
  • 先贴上这章内容的实验链接,两个实验①新建线程,用子进程完成fibonacci序列的计算,父进程输出结果。...它与属于同一进程的其它线程共享代码段、数据段和其他操作系统资源。 传统重量级单线程,多线程...

空空如也

空空如也

1 2 3 4 5
收藏数 95
精华内容 38
关键字:

属于同一进程的两个线程