java多线程

 

    首先,先解释一下进程和线程的概念:

    进程是指运行中的应用程序,每一个进程都有自己独立的内存空间。一个应用程序可以同时启动多个进程。如对于IE浏览器,每打开一个IE浏览器窗口,就启动了一个新的进程。同样,每次执行jdk的java.exe程序,就启动了一个独立的java虚拟机进程,该进程的任务是解析并执行java程序代码。

    线程是指进程中的一个执行流程,有时也称为执行情景。一个进程可以有多个线程组成,即在一个进程中可以运行多个线程,它们分别执行不同的任务。当进程内多个线程同时运行时,称之为并发运行。许多服务器程序,如数据库服务器和web服务器,都支持并发运行,这些服务器可以同时相应来自不同客户的请求。

     主要区别在于:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程的所有线程在同一地址空间中工作,这些线程可以共享同一块内存和系统资源,比如共享一个对象或共享已经打开的一个文件。

 

   线程有以下状态转换:

   1:新建状态(new)

        用new语句创建的线程对象处于创建状态,此时它和其他java对象一样,仅仅在堆中分配了内存。

   2:就绪状态(Runnable)

        当一个线程对象创建后,其他线程调用它的Start()方法,该线程就进入了就绪状态,java虚拟机会为它创建

        方法调用栈和程序计数器。处于这个状态的线程位于可运行池中,等待获取cpu使用权。

   3:阻塞状态(Blocked)

        线程由于某些原因放弃cpu,暂时停止运行。当线程处于该状态,java虚拟机不会为该线程分配cpu,直到线程

       重新进入就绪状态,它才有机会进入运行态。

  4:当线程退出run()方法时,就进入死亡状态,该线程结束生命周期。  

(附件中尤其状态转换图)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值