java中实用的线程问题汇总

线程和进程是可以相互来进行理解归纳总结的问题:进而对比的来进行记忆有助于我们自己的理解

下面是简单的线程和进程的对比

  (1)进程:进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间),比如用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间。当用户再次点击左面的IE浏览器,又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。目前操作系统都支持多进程。

要点:用户每启动一个进程,操作系统就会为该进程分配一个独立的内存空间

  (2)线程:线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。线程有就绪、阻塞和运行三种基本状态。

要点:(1)线程的三种基本状态,就绪,阻塞和运行

(2)线程是轻量级的进程线程;没有独立的地址空间(内存空间);线程是由进程创建的(寄生在进程);一个进程可以拥有多个线程。(即常说的多线程编程)

线程的其他几种状态:

创建(new)

timed_waitint(限期等待 ) 

waiting(无限期等待)

消亡(dead)

****************************************************************************************************************

转化过程:1.通过new创建线程;2.通过调用start方法进入就绪状态(但是不一定会运行);3.就绪状态通过获得cpu的执行时间,进入运行状态;4.运行状态通过进入同步快或者是io阻塞,进入到了阻塞状态,阻塞状态通过同步快释放或者是io完成,退出阻塞状态,进入就绪状态;

运行状态通过sleep方法,join方法(静态方法),wait(seconds)方法进入time_waiting(限期等待状态);限期等待通过时间到达进入就绪状态;运行状态通过wait(),join()进入无限期等待状态,通过notify方法或者是run方法执行完毕进入就绪状态;运行状态通过yield方法(静态方法)或者是cpu时间片用完,进入就绪状态;5.运行状态通过中断或者是执行完毕进入死亡状态。

详细图如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值